java jsoup 爬虫 怎么防止重复爬取?使用jsoup抓取分页的问题
本文目录
java jsoup 爬虫 怎么防止重复爬取
正好最近在学习这方面的内容。
两种思路:
可以将当前爬取的url存在一个list中作登记,在下一次开始爬子链接的时候进行比对,如果已经存在在list中则跳过,如果不存在那么继续爬
可以将所有的url网络先遍历一遍存在list中,然后根据list而不是再次访问子链接url进行爬取,在url存入list的过程中进行查重处理
顺便为了方便控制。建议设置爬取深度,在一定深度内进行爬取。
使用jsoup抓取分页的问题
这几天正在研究。废话不多说,直接上代码,自己研究的,通过迭代抓取。pageList就是抓取的分页页面的全部链接地址 。其中Document doc = NetUtils.getDocument(url);是jsoup抓取页面的基本操作。public class HtmlAnalsysTest3 {static String url = "http://www.win4000.com/mt/huge.html";public static void main(String args) {analsysPage(url);for(String hurl : pageList){System.out.println(" hurl--》"+hurl);}}//已经抓取的用来迭代过滤static List《String》 hisurl = new ArrayList《String》();//所需要分页链接集合static List《String》 pageList = new ArrayList《String》();private static void analsysPage(String url){if(hisurl.contains(url)){System.out.println("hisurl :"+hisurl.size());return;}Document doc = NetUtils.getDocument(url);if(doc==null){System.out.println("doc is null "+url);return;}hisurl.add(url);String tag = "body a";String attr = "abs:href";String herfcontent = "mt/huge";//只筛选胡歌的连接Elements elemens = doc.select(tag);for(Element e : elemens){String href = e.attr(attr);if(!href.contains(herfcontent)){continue;}//System.out.println("页面page :"+ href);if(!pageList.contains(href)){pageList.add(href);}analsysPage(href);//迭代抓取,迭代过程会自动找后后续的页面}}}最终结果输出:hurl--》http://www.win4000.com/mt/huge_2.htmlhurl--》http://www.win4000.com/mt/huge_1.htmlhurl--》http://www.win4000.com/mt/huge_3.htmlhurl--》http://www.win4000.com/mt/huge_4.htmlhurl--》http://www.win4000.com/mt/huge_5.htmlhurl--》http://www.win4000.com/mt/huge.html
更多文章:
华硕n56进入bios(华硕 n56 bios如何设置usb启动)
2024年7月8日 12:43
T147是到北京站吗会晚点吗晚点多久谢谢!急!急!急?T147列车为什么不配置充电插座
2023年8月6日 16:40
现在联想电脑最新版本(现在联想笔记本电脑配置最高的最新款是什么型号)
2023年10月30日 20:35
联想扬天v110为啥垃圾(联想扬天V110笔记本电脑怎么样,开机了解深度评测)
2024年5月6日 00:52
联想sl410内存条型号(thinkpad T410、sl410 都用什么内存啊,要单条4G的)
2024年10月19日 09:00
联想天逸300高配版(最近看中了一款联想笔记本电脑不知道好不好 型号是联想天逸300-15(i5/2G独显/DVD))
2024年6月21日 00:56
华硕vivobook15x配置参数(华硕vivobook15x是i54430么)
2024年8月21日 05:45
华硕a550jk拆机(你好,我想知道华硕a550jk4200的硬盘厚度是多少,我想换固态硬盘)
2024年6月27日 16:05
电脑公司logo(用WORD怎么把公司的logo和名称放在页面的顶端,怎么把联系电话放在页面末尾)
2024年7月8日 20:06
三星手机最新款(三星GalaxyNote10国行推送安卓12新固件,更新后有何新功能)
2023年11月20日 01:50
索尼15寸笔记本(有一款sony pcg-7g6p的二手笔记本,800元,只说15寸平,谁知道具体的配置啊)
2024年2月2日 12:50