配置好了八爪鱼采集规则后,我们可以对规则进行一些优化,以更稳定地采集更完整的数据。

优化方向主要有以下四种:

 

一、设置执行前等待

二、设置/调整Ajax超时

三、设置页面滚动

四、检查新标签的勾选是否正确

 

 

一、设置执行前等待

执行前等待的意思是:在当前步骤等待一段时间,再执行下一个步骤。

 

1、为什么要设置执行前等待?

原因①:避免执行步骤速度太快,很多时候网页还没加载完全就提取数据了,导致采集不到目标数据。

原因②:对于一些防采集严重的网站,如淘宝、大众点评等,适当的设置执行前等待,放慢采集速度,可以有效降低或避免触发网站的防采集措施。

 

2、如何设置执行前等待?

① 在八爪鱼规则中,所有的步骤均可以设置执行前等待。但如果给所有步骤设置执行前等待,采集速度会变得很慢。所以我们一般为【循环列表】、【点击元素/翻页】、【提取数据】等关键步骤设置执行前等待即可。

② 执行前等待的时间,需要根据网页实际加载情况而定。

③ 具体设置方法和实例,请看 执行前等待教程

 

 

 

二、设置/调整Ajax超时

Ajax是一种在无需重新加载整个网页的情况下,更新部分网页的技术。

Ajax超时本质上是执行当前步骤后等待一定时间,执行前等待是执行当前步骤前等待一段时间,两种互相配合,并不冲突。

 

1、为什么要设置/调整Ajax超时?

原因①:大多数情况下八爪鱼能自动识别Ajax网页并设置合适的Ajax超时时间,如果自动设置的Ajax时间过短,需根据网页实际情况进行调整。

原因②:有的网页本身打开很慢,但其实数据都加载出来了,可利用Ajax超时强制结束加载,比如一些国外网站。

原因③:网页本身是Ajax,但没自动识别出来,需手动设置。

 

2、如何设置/调整Ajax超时?

① 一般是对【点击元素】/【点击翻页】步骤设置Ajax超时。

② Ajax超时时间不建议太短,推荐设置为5-10秒。因为如果网页一时打开较慢,那么超时时间一到,网页就停止加载数据了,容易导致采集不到数据。

③ 具体设置方法和实例,请看 ajax网页采集方法教程

 

 

 

三、设置页面滚动

即在打开一个新页面后,让页面向下滚动。

 

1、为什么要设置页面滚动?

原因①:有的瀑布流网页,向下滚动才能加载出新的数据。这个比较容易发现。

原因②:有的商品详情、文章详情,向下滚动才能加载出全部的数据,比如某个按钮,或者真实的图片地址。这个比较难发现,需要我们仔细观察目标网页。

 

2、如何设置页面滚动?

① 一般是对【点击元素】/【点击元素】/【点击翻页】等打开新页面的步骤设置滚动。

②  根据需求和网页情况设置滚动方式、滚动次数和每次滚动的间隔时间,推荐滚动【向下滚动一屏】的滚动方式,这样会采集更完整的数据,但也更费时间。

③ 具体设置方法和实例,请看 滚动采集数据的方法教程 

 


四、检查新标签勾选是否正确

在八爪鱼采集器中做规则时,软件的智能算法会自动判断页面是否为Ajax加载数据,判断是否需要勾选【在新标签中打开】。

当运行采集规则没有问题时,则无需修改软件自动勾选的内容;

当运行规则有问题时,则优先根据前三点方法进行优化规则,前三点优化后还是有问题的,最后在来检查【在新标签中打开】这项内容勾选是否正确。

 

1、判断标准

如果是Ajax加载数据的页面,则不能勾选【在新标签中打开】。

如果不是Ajax加载数据的页面,则一定要勾选在新标签中打开】。

按照这个标准判断,发现软件勾选错误的,比如不是Ajax加载数据的页面,但是软件没有勾选在新标签中打开】,这时我们就需要手动勾选上在新标签中打开】,并对这步【点击元素】的下一个步骤进行流程修复。

 

2、流程修复操作方法

选中勾选了【在新标签中打开】步骤的下一个步骤,然后上下拖动,流程中出现【+】号,把这个步骤放到它原来位置的上面那个【+】号,这样就完成了流程修复操作。

示例中勾选了【在新标签中打开】的是【点击元素】步骤,下一个步骤是【提取数据】步骤,拖动修复如下图所示: