如果用八爪鱼配置规则,采集数据出现异常,我们如何快速找出并解决问题?如何更好与客服沟通?

本教程将讲解规则排错的基本思路与方法。

 

一、手动执行规则

 

做好采集规则以后,我们最好手动执行一下规则,检查规则是否满足采集需求。

手动执行规则是什么意思?打开流程图界面,按照从上至下,由内而外的逻辑(点击查看 流程执行逻辑教程),将每个步骤都点击一遍,并观察点击步骤后的页面情况。如果符合预期,没问题。如果不符合预期,则需要修改。

 

1、手动执行规则,符合预期

 

特别说明:

a. 在点击【循环列表】时,最好选择除第1项以外的项,防止循环只对第1个项有效。

b. 在【打开网页】和【点击元素】后,如果数据已经出现了,但浏览器还在转圈,可按 强制停止加载,方便进入下一个步骤。

 

 

例:采集豆瓣图书列表数据。手动执行一下规则,运行顺畅并采集到数据。没问题。

 

 

 

2、手动执行规则,不符合预期,可能有以下几种现象:

 

2.1、点击某个步骤后无响应

原因①:XPath定位不准,需修改定位XPath,点击查看 XPath教程

原因②:多次修改此步骤导致底层代码错乱,需删掉此步骤重做一遍。

 

2.2、提取到的数据不精准

表现为数据重复、数据错位、数据漏采等多种情况。提取数据不精准一般是在运行本地采集,拿到一些数据后更容易发现的。

因此,我们在下文 二、运行本地采集 中详细讲。

 

 

二、运行本地采集

 

将任务启动本地采集。观察任务的采集状态,进而分析问题、解决问题。下面是一些常见的问题和解决方法汇总。

 

1、手动执行规则有数据,启动本地采集后,很快提示:【采集已停止】

 

 

 

原因①:网页打开过快,但实际要采集的数据还未出现。需为【打开网页】后的步骤设置【执行前等待】,具体请参考 执行前等待教程

 

2、手动执行规则有数据,采集速度很慢,在某些步骤长时间等待

原因①:网页本身打开很慢,例如一些国外网站。如果打开慢且数据出现慢,没办法只能等。如果打开慢但数据出现快,可利用Ajax时强制结束加载。具体请参考 Ajax教程

原因②:Ajax网页未设置Ajax超时。需在相应步骤设置Ajax超时。具体请参考 Ajax教程

原因③:流程中层级过多,有很多点击元素或执行前等待。可根据网页采集需求和加载状况进行规则优化。

 

3、数据重复

 

3.1、【循环-提取数据】类规则,重复采集每页第1条数据

原因①:循环中的【提取数据】步骤,未勾选【采集当前循环中设置的元素】,需勾选上

原因②:采集的字段未勾选【相对XPath】,需勾选上且写对,查看 相对XPath教程

 

3.2、【循环-点击元素-提取数据】类规则,重复点击每页第1个链接

原因①:【点击元素】步骤,未勾选【点击当前循环中设置的元素】,需勾选上    

 

3.3、重复采集某几页

原因①:翻页的定位XPath有问题,需手动修改定位XPath。具体可参考 XPath教程

 

4、数据错位

原因①:字段的定位XPath有问题,需手动修改定位XPath。具体可参考 字段提取不到,字段提取错位如何处理 

 

5、数据漏采(部分字段漏、部分循环项漏、整页漏)

原因①:网页上的字段/循环项/翻页按钮没加载出来。需设置执行前等待,让其加载出来。具体请参考 执行前等待教程

原因②:字段/循环项/翻页的XPath定位不准。需修改定位XPath,使得XPath适用于所有同类网页。具体可参考 XPath教程 

原因③:网页未设置【页面滚动】。有的网页数据需设置【页面滚动】才会加载完全,具体请查看 页面滚动教程

 

当我们的规则,手动执行和运行【本地采集】都没问题以后,就可以进行【云采集】了。如果手动执行和运行【本地采集】都有数据,【云采集】无数据,一般有哪些原因呢?

 

 

三、运行【云采集】

 

1、网页防采集

1.1、IP被封

原因:部分网站采用极其严格的封IP措施(跳到登录页面等),云采集使用一个节点长时间采集后,出现此节点ip被封禁,不能正常采集到数据的情况。

解决方法:使用代理IP,分配给任务多个节点,并使多个节点空闲,避免任务在同一个云端同一个IP上采集。

 

1.2、出现验证码

原因:部分网页采集过程中会出现验证码,需正确输入验证码后才能进行数据采集。

解决方法:设置验证码自动识别;设置 执行前等待  降低采集速度,将任务细分采用少量多次的提取方式。

 

2、cookie访问限制

原因:规则中使用了cookie登录,本地采集的时候可正常调用本地缓存的cookie。启动云采集后,云采集使用云端服务器节点,是新的ip,没有登录cookie,不能以登录状态打开要采集的网页

解决方法:在规则中加入账号密码登录步骤,具体请查看教程  需要登录的网页(含登录时有验证码)
(★有的网站不支持多ip登录,此类网站的采集规则,需勾选【云采集不拆分任务】) 

 

 

3、云端问题-云服务器带宽较小

原因:云端带宽较小,造成本地打开缓慢的网站在云端打开更加漫长,一旦超时就会打不开网站或者加载不出来数据造成跳过此步骤

解决方法:把打开网址的超时时间或者下一步的执行前等待时间设置久一些。也可设置重试条件,让其在未正常打开时重试。具体请看 重试教程

 

4、规则问题-增量采集

原因:云采集具有增量采集功能:根据url判断是否采集过,第一次采集后,后续不会再采集已采集过的url。如果是列表信息采集,如果后续有增加新增列表,但url没有发生改变,八爪鱼会跳过此条url不采集

解决方法:关闭增量采集。

 

 

四、快速排错的小技巧

 

1、提取数据增加提取网页页码

帮助我们快速定位数据采集从哪一页开始出现问题

 

2、提取数据增加提取网页网址

提取不到字段时,帮助我们快速检查网页情况,是网页本身的问题(网址失效、本身无此字段),还是八爪鱼问题(无法正常打开网页、XPath定位不准等)

 

 3、提取数据增加提取网页源码

常见于云采集,便于我们查看采集任务在云上的运行环境。