有些网页我们在采集时可能有加载更多或者再显示20条等按钮,需要点击这些按钮之后需要的数据才会完全显示出来,对于这种类型的网页,我们该如何解决并完整的采集出数据呢

 

本文的入口地址为:http://junyueshanyc.fang.com/dianping/

 

打开这个网页之后可以看到页面有再显示20条这个按钮,前面给大家讲过手动创建翻页循环的方法,其实这个网页也是一样的方法,我们把再显示20条这个按钮也手动做一个循环点击。

 

1 

步骤一.选择八爪鱼中的再显示20条这个按钮,然后在操作提示中选择点击该链接。

 

2

 

打开流程图,以上操作之后系统会自动添加一个点击步骤到流程中。

 

更多1

 

点击自定义,进入自定义定位方式界面,将下一页的Xpath复制出来,然后把创建的点击步骤删除,因为我们让系统自动创建点击步骤只是为了得到下一页的Xpath,如果是懂Xpath的朋友可以省掉这个步骤。

 

步骤二.接下来我们要创建循环点击,先拖一个循环步骤到流程中,打开高级选项,勾选点击单个元素,然后将之前复制的下一页Xpath填到单个元素输入框中(动图有误,请注意),点击保存之后可以看到循环列表是再点击20条这个内容。

 

更多2

 

步骤三.拖入一个点击步骤到循环中,打开高级选项,勾选上点击当前循环中设置的元素,点击保存。

注意这个点击元素涉及到了ajax,前面教程里面给大家讲到了ajax的特征,也直接通过八爪鱼浏览器下面的这个圈转没转可以判断这个网页需不需要设置ajax。

 

更多3 

步骤四.接下来创建循环采集列表,循环采集流程如果在点击元素下,应该将它拖到点击之前,采集完成才进行点击,如下图所示:

 

更多4 

 

这个流程大家可以单机采集测试一下,可以看到原本只有135条评论,但是采集出来重复了420条。

 

注意这个流程其实就是错误的,这是为什么呢?大家可以手动点击测试一下,第一次我们显示的是20条评论,然后进行提取20条,然后再在流程里面点击元素,可以看到这时候循环列表为40个,这之后再提取数据的话,就会提取刚刚已经提取过的那20条数据,如此循环下去,数据会一直重复。

 

对于这种类型的网页,我们做的流程应该如下图所示:即先把再显示20条全部点完,让所有评论加载完之后再循环提取评论

3 

做好之后我们再试着采集看看,可以看到这时候的数据就是正常采集下来无重复的了