采集规则如何排错?
2016-09-28 20:22:12 阅读量: 0
教程中已有详细的排错图文教程
这里主要讲一下单机采集时遇到问题时,如何排错。单机采集出现问题,大都是因为规则中某个步骤没有执行,网页加载不完全或者步骤的高级选项设置不当。
官网中提供了很实用的排错教程,教程中详细说明了在八爪鱼中配置规则时,如何手动执行各步骤进行排查,这个是排错中很重要的一步,这里就不再重复。大家可以直接进入教程中心搜索“规则制作排错教程“
八爪鱼采集数据原理:
八爪鱼软件主要是模仿用户浏览网页的操作,比如打开网页、点击元素、输入文字、切换下拉选项、移动鼠标到元素上。这些我们平时浏览网页也为进行相应的操作。
例子:
进入八爪鱼官网界面(打开网页),鼠标放在产品介绍上(移动鼠标到元素上),就会弹出一个黑色的小框,鼠标移开,黑色方框就会隐藏。然后点击旁边的教程中心(点击元素),进入教程中心页面,有个搜索框,输入“规则制作排错教程“(输入文字)。
八爪鱼中还有个牛逼的步骤,循环。这也是我们能够大量采集数据的主要步骤。
循环翻页、循环点击元素、循环输入文本、循环打开网页
八爪鱼主要是根据xpath去定位到元素,然后执行相应步骤。
规则排错主要思路
在手动执行基本没问题后(说明流程基本没有问题),进行单机采集。
然后观察单机采集界面中的网页变化,看网页是否按照每个步骤执行。如果有步骤没有执行,则该步骤出现问题。例如没有点击到详情页,没有循环翻页。重新编辑规则,在规则中的对应步骤重新调试。
下列是根据单机采集出现的问题进行讲解(5个):
1.单机运行,采集不到数据
(1)打开网页后,直接提示采集完成
主要原因:有些网站的加载会很慢,网页还没有完全加载出来,八爪鱼就执行下一个步骤,当八爪鱼找不到相应的位置时,步骤无法执行,最终导致提取不到数据。
解决方法:可以将网页的超时时间加长,或者在下一个步骤设置执行前等待。让网页有足够长的时间加载。
(2)网页一直在加载
主要原因:主要是网站的问题,有些网站的加载会很慢。想要采集的数据没有出现。
解决方法:如果当前步骤是打开网页步骤,可以将网页的超时时间加长。如果是点击元素步骤,而且要采集的数据已经加载出来的时候,可以在点击元素步骤设置ajax延时,
(3)网页没有进入采集页面
该问题常常是出现在点击元素步骤。有些网页中含有ajax链接时,根据点击位置判断是否需要设置。如果没有设置,在单机采集时会一直卡在前一个步骤,采集不到数据。
主要原因:当网页为异步加载时,没有设置ajax延时的话,操作一般不会正确执行,导致规则无法进行下一步,提取不到数据。
解决方法:在相应步骤设置ajax延时,一般是2-3S,如果网页加载时间较长,可以适当增加延时时长。点击元素,循环下一页、移动鼠标到元素上,这三个步骤中都有ajax设置
例子:下图是采集京东网站下的一个手机商品的评论数据,需要点击商品评价,进入相应的评论页面。单机运行时,网页一直卡在评论页面,没有评论数据出现。原因就在于点击元素没有设置ajax延时,导致网页没有进入相应的采集界面。
2.单机运行,漏采数据
(1)部分字段没有数据
主要原因:单机采集时,发现有些字段信息为空,这时候就应该找到相应的采集页面,查看想要的采集的数据是否存在,有时并不是每个网页都含有所有字段信息。如果没有,字段为空是正常的。如果有的话,基本就是xpath定位问题,这时需要修改xpath,准确定位到相应字段。
解决方法:重新打开规则,手动执行验证。如需修改xpath,可以找xpath教程。
例子:下图中预约人数和预约时间出现空值,重新打开规则,手动执行,发现,页面是可以采集到数据(图二)。说明这个主要是网页加载问题,可以在下一个步骤前设置等待时长。第二条数据为空,是因为在第二个详情页原本就没有数据,属于正常。
(2)采集数据条数不对
采集数据条数不对,一般是循环翻页或者网页加载的问题。
有些网页数据需要向下滚动才会加载数据,如果在打开网页时,没有设置足够的向下滚动字数,网页加载出来的数据量也没有手动执行规则时的多。
如果翻页不正确,导致一部分页面的数据无法采集。比如出现不规则翻页,导致部分页面没有打开,数据无法采集。
主要解决方法:如果是翻页问题,修改翻页循环的xpath;如果是网页加载问题,则在打开网页的高级选项中设置滚动次数
例子:在制作规则时,循环选项是80条,而单机采集的时候,只采集了16条。其中主要的原因是网页没有设置向下滚动加载,导致加载的条数变少。
3.采集的数据错乱,不是对应信息
(1)多个提取数据步骤
这里遇见最多的是采集评论数据的时候,
主要原因:主要网页加载问题,在当前采集到数据后,点击元素到评论数据页面的时候,有些网页会加载很久,导致数据采集慢,如果设置ajax去忽略加载的话,就容易出错。如果不设置ajax,则采集的数据量少,采集速度慢。
解决方法:分成两步,第一步是采集当前页面信息和评论页面的URL,第二步是循环URL采集 评论数据,后续将导出数据在excel、数据库中匹配处理。
例子:采集亚马逊书籍评论数据时,由于评论数据与基本信息在不同页面,从基本信息页面进入评论数据页面,网页加载较慢,如果设置ajax,就很容易出现数据错乱。
(2)字段信息出现在不同位置
同一个网站,一般来说,网页结构大体相同,所以我们制作规则提取数据时,直接点击相应的位置进行提取,但有时候字段信息会放在不同位置,导致信息错位。
解决方法:重新修改xpath,使之精确定位到对应字段信息
例子:京东手机商品的基本信息,其中分辨率字段出现数据错乱情况,主要是分辨率信息位置不是固定的。
4.数据重复
(1)单机运行,数据出现大量重复
主要原因:主要是翻页设置错误,比如只在一二页循环,或者最后一页的下一页按钮依然可以点击。
解决方法:修改翻页的xpath定位,手动执行测试是否可以正常翻页。
例子:一个有关电影院信息的网站,大量采集电影院信息,但是采集409条信息,其中371条数据重复(图一),主要是因为在翻到第二页时,循环的xpath定位到上一页。出现一二页循环问题。
5.云采集,采集不到数据。
在单机运行正常的情况下,才可以进行云采集。
先确认云节点是否被其他任务占满,如果是,则当前任务因分配不到节点,导致无法采集到数据。如果不是,一般是网页加载问题。因为云上带宽较小,在云服务器中打开网页时间一般会比本地打开网页的时间耗时更长,当网页本地打开都需要比较长的时间的话(例.国外网站或图片较多的网站),云上也许就要更长的时间,一旦超时就会不打开跳过这一页数据,这时可以把打开网页的高级选项里的超时时间改长些,就可以解决。
排除上述问题后,还要可能是任务拆分出现问题和禁止加载图片,可以在运行云采集前更改这些选项
特例
1、无法循环翻页, 先采集URL,再采集详情信息
例子:在采集下面网页中的各人物的相关信息,需要循环点击人物的姓名,进入详情页。创建循环点击元素后,发现循环项为空。遇到这种情况的时候,别着急,这主要是该网站源代码的特殊结构不适合我们八爪鱼采集。这是一个很少见例子,如果遇到,可以先采集个人物详情页的URL,然后 用URL循环采集详情页信息。
2、配置流程异常,选择不对,导致流程错乱,所以即使手动执行是正确的,但单机采集也会有问题。或者在制作规则的时候,对流程步骤多次删除改动也会出现建议重新制作一个规则
如果以上都不能解决你的问题,那么还有几个简单有效的方式可以提问: