网页爬虫抓取百度图片(用Jsoup解析img标签并提取里面的title和data-original属性 )

优采云 发布时间: 2022-02-08 00:14

  网页爬虫抓取百度图片(用Jsoup解析img标签并提取里面的title和data-original属性

)

  大家好,我是小北。

  

  在普通的群聊中,有时会遇到那种欺负人。如果你不同意,你会开始谈论阴阳并发送各种表情符号。但是,你的微信表情总是一点点,不够个性,上网去百度太麻烦了。本文文章根据emoji中的关键词网站下载emoji到本地,让黑帮远离你。

  本文使用java的OKHttp框架作为爬虫抓取“post emoji”网站()的表情包,使用Jsoup框架解析抓取到的网页。

  马文

  OKHttp是一个优秀的网络请求框架,可以请求http、https、get()、post()、put()等请求方法。Jsoup是一个解析网页的框架,可以像JS一样使用。

  

com.squareup.okhttp3

okhttp

4.9.3

org.jsoup

jsoup

1.14.3

  思路分析

  打开网站,搜索关键字[Loading Force]的表情包,打开F12控制面板,可以看到每个表情包都收录在div元素中,翻的时候可以读取url地址这一页。可以看到第一页最后一个数字是1,第二页是2,第三页是3。这个很容易做到,只需要改变数字即可。

  

  String url = String.format("https://fabiaoqing.com/search/bqb/keyword/%s/type/bq/page/%d.html", "装逼", 1);

public Request buildRequest(String url) {

Request request = new Request.Builder()

.url(url)

.build();

return request;

}

public Response getResponse( Request request) {

Response response = null;

try {

OkHttpClient client = new OkHttpClient();

response = client.newCall(request).execute();

System.out.println(response.body().string());

} catch (Exception e) {

e.printStackTrace();

}

return response;

}

  继续查看网页源码,表情图片隐藏在div层下的img表情中,使用Jsoup解析img标签,提取里面的title和data-original属性,作为文件名和内容图片。

  

  Map map = new HashMap();

Document document = Jsoup.parse(html);

Elements elements = document.getElementsByClass("ui image bqppsearch lazy");

for (Element element : elements) {

Attributes attributes = element.attributes();

String key = attributes.get("title").replaceAll("\\n", "").replaceAll("[/\\\\\\\\:*?|\\\"]", "");

String value = attributes.get("data-original");

map.put(key, value);

}

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线