有的网页没有下一页按钮,但是有【加载更多】或【再显示20条】等按钮,通过不断点击这些按钮,可以实现翻页,加载出新数据。

像 搜狗微信首页 微博评论 等页面都是这种情况。

 

针对这类网页,使用智能识别和自行配置的采集规则,都能实现翻页,具体设置方法如下:

 

 

1、智能识别实现【点击加载更多翻页】

示例网址如:https://weixin.sogou.com/

 

 

八爪鱼的智能识别,支持【加载更多内容】这种翻页的智能识别,如下图所示:

 

在 新手入门第8课:采集原理与流程执行逻辑 中,我们讲过,流程的执行逻辑是先从上至下、再由内而外。那上图中的流程的执行逻辑是:先打开网页,然后不断点击【加载更多内容】进行翻页,翻页全部完成以后,再提取所有列表数据。

 

这里有一个问题,如果网页【加载更多内容】这个按钮是可以无限点击的,那八爪鱼就会一直点击它,容易导致程序崩溃,采集不到数据。因此,我们可以设置一定的点击次数,让八爪鱼执行设置的翻页次数后,就开始采集数据。建议点击次数不超过500次,具体可根据网页情况和采集需求来。

 

本示例中的网站,我们观察后发现,它是在点击5次【加载更多内容】后就到底了,不再出现新内容了,因此,我们可以将它的翻页次数设为5,设置方法如下图所示:

 

 

启动本地采集,来看一下采集结果:八爪鱼先点击了5次【加载更多内容】,到达底部,此时页面中有100个文章列表。随后,八爪鱼将这100个文章列表的数据都采集下来了。

 

 

2、自己配置采集流程实现【点击加载更多翻页】

如果不用智能识别 ,可自己配置采集流程。

 

按照 第6课:翻页以采集多页数据  中的方法,配置一个【循环翻页】,再按 采集列表数据 中的方法,配置一个【循环列表】。

 

 

八爪鱼自动生成的流程不符合此网页的采集情况,我们需要手动调整一下:按住【循环列表】步骤,将其拖入到【循环翻页】后面。

为何要这么调整,上文已详细说明。

 

同样的,我们根据网页情况,设置合适的翻页次数:

 

 

我们还发现,自动生成的列表XPath://BODY[@id="loginWrap"]/DIV[4]/DIV[1]/DIV[3]/UL[1]/LI有点问题,只能定位到前20个文章列表。修改为//BODY[@id="loginWrap"]/DIV[4]/DIV[1]/DIV[3]/UL/LI后就可以定位到全部文章列表了。为什么要这么修改?请查看XPath教程

 

 

特别说明:

a. 八爪鱼在导出数据时,支持数据去重。如果不介意采集过程中有重复数据,也可不调整流程逻辑。

 

作者:Bin

编辑:Aisling