其实现在用JSOUP爬虫的也不多了,但是由于最近换公司,做数据爬虫需要用到,就看了下,感觉还是挺好用的,原理什么的感觉和weblogic也差不到哪里去,废话少说,这里就简单的分享下最近接触的干货。
JSOUP实现原理也简单说一下,可能有不对的地方评论欢迎指正。我们可以使用JSOUP直接解析某个URL地址或者指定的HTML文本,将抓取的网页或者文本内容加载到Document中,然后可以针对这个doucument进行解析,选择,利用dom或者css或者匹配正则来获取你需要的内容。下面是我项目脚本的内容部分分享,可以供大家一起参考学习,从浅入深:
第一步:当然是在项目中导入需要的jar包,使用maven管理的可以直接在pom文件里面导,
没有的同学可以去官网下载jar包https://jsoup.org/download。
接下来我们就可以正式开始第一个JSOUP项目抓取工作了
第二步:初始化或者指定url,将内容加载到document并制定编码格式
String url="http://baidu.com.cn" String result = RequestUtil.doGet(url,"GBK") // println(result); Document doc = Jsoup.parse(result)
在这里我们可以看到你已经把这个网页内容加载进去了,然后我们可以开始根据需求来抓取需要的数据
第三步:根据需求抓取数据:
我们这里先介绍使用选择器来抓取数据,这里可以利用到网页的dom节点class或者id来抓取文本下的
内容:
1、根据class选择器来选择文本:
doc.select(".head_wrapper")
这里的.head_wrapper就是网页标签的一个类 ,抓取到的文本就是.head_wrapper这个标签及其子节点的里面的内容。
2、根据id选择器来选择文本:
Element link2=doc.select("#css_index_result")
这里选取的是以这个为id的标签内容以及其子节点的所有内容
3、抓取a标签的href:
Elements hrefs = doc.select("a[href]");
4、灵活使用^,$与~分别抓取以什么开头,以什么结尾,正则表达式匹配的内容
//以.com结尾的img标签内容抓取 Elements hrefs = doc.select("img[src$=.com]"); println(hrefs) //以//www.开头的img标签内容抓取 Elements imgs = doc.select("img[src^=//www.]"); println(imgs) //正则表达式匹配以png,gif,jpg结尾的img标签抓取 Elements jpgs = doc.select("img[src~=(?i)\.(png|gif|jpg?g)]"); println(jpgs)
以上抓取的内容可能一条或者多条,多条存放就存放在一个list中,可以遍历这个list查看,ok,这里基础内容写到这里,接下来更新JSOUP学习分享(二),感谢您的阅读