Java爬虫爬取网页数据-基于Jsoup
前言
本文主要介绍简单的使用Jsoup爬取网页数据
框架 SpringBoot + Jsoup
每一个步骤我都是进行独立封装起来,方便复用(重要的事说三遍)
每一个步骤我都是进行独立封装起来,方便复用(重要的事说三遍)
每一个步骤我都是进行独立封装起来,方便复用(重要的事说三遍)
这就是广告:技术交流群796794009
SpringBoot技术交流群;--小吾
一.准备
创建一个SpringBoot项目引入Jsoup依赖
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.13.1</version>
</dependency>
二.代码(使用Jsoup的核心就两步)
第一步
通过Jsoup
的connect(url).get();
方法获取到当前页面信息
url为你要获取的网页地址
返回的是一个Document
public Document getDoc(String url){
Document doc;
try {
doc = Jsoup.connect(url).get();
} catch (IOException e) {
log.error("出现异常:{}", e.getMessage());
return null;
}
return doc;
}
第二步
通过Document
中的select
方法获取标签(Elements
)信息
特别备注1: 使用select
方法获取到的是Elements
集合,需要进行遍历才能获取到Element
特别备注2:link.attr("abs:src")
中的abs:是指获取到绝对路径,现在很多页面中的src是不带域名的
private Map<String,String> listUrl(Document doc){
// Map<链接地址, 链接名称>
Map<String,String> map = new HashMap<>(16);
// 获取图片标签
Elements links = doc.select("img[src]");
for (Element link : links){
System.out.println("名称 : " + link.text());
System.out.println("链接 : " + link.attr("abs:src"));
map.put(link.absUrl("abs:src"), link.text());
}
return map;
}
三.效果
这里爬取的是我的博客上的一篇文章中的图片数据
爬虫项目地址
个人爬虫项目,仅供学习参考:https://github.com/xiao-wu-1024/demo_reptile
使用环境jdk1.8 、 MySQL8.0
备注:本项目仅提供4个接口
特别备注: 第4个接口不推荐大家尝试大型网站, 大型网站接口多获取时间过长
禁止使用本项目做一切违法行为,仅供学习参考
如图: