换个思维,挺好!

1、题记

在爬取数据时,会遇到分页爬取的问题。传统的方法是获取到页数xpath,然后逐页面进行解析。
但是受开发模型不易扩展的影响,没有实现。
后来,转换下思维,很快实现。
这里写图片描述

2、换个思维

程序搁浅了,昨晚发现,完全可以换个思维。
由于网页分页存在以下特点:
第一页:http://www.xxx.com/facuty/XCoLUn/menen_1.htm
第二页:http://www. xxx .com/facuty/XCoLUn/menen_2.htm
第三页: http://www. xxx .com/facuty/XCoLUn/menen_3.htm

就想到直接外层套个循环即可,当分页出现解析为空的时候,
说明当前页没有内容,停止循环即可。

//原有入口地址: entryUrl
//分页后处理地址:
for(int i = 1; i <= 20; i++){
String strTmp = "/ menen_" + i +".htm";
String curUrlPage = entryUrl.replace(".htm", strTmp);
System.out.println("curPage =" + curUrlPage);

.......

if (results == null || results.size() == 0) {
logger.error("网页抽取失败, entryURL=" + curUrlPage);
logger.error(title + "最大页数: " + (i-1));
break;
}
}

3、业务核心逻辑

1)配置入口地址;
2)配置需要解析的url xpath以及提取的标题、日期、人名等xpath地址;
3)获取content内容;
4)解析content获取标题、日期、人名等信息。

4、小结

一路走不通时,有时候需要死磕,但有时候转换思维后,或许能找到更快、更好的方法。

2017年6月3日 10:20 于家中床前

作者:铭毅天下
转载请标明出处,原文地址:
http://blog.csdn.net/laoyang360/article/details/72850572
如果感觉本文对您有帮助,请点击‘顶’支持一下,您的支持是我坚持写作最大的动力,谢谢!

©️2020 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie 返回首页