八爪鱼采集器云采集原理以及规则加速设置教程

云采集原理以及规则加速设置教程

对于旗舰版以上的用户,可以通过云采集实现多任务并发和单任务加速的采集效果以便用户快速的收集整理互联网公开数据,本教程主要讲云采集原理、规则加速设置 本文来自小莫扎特博客www.plusminustsuchi.com 提供

一、云采集原理
本文来自小莫扎特博客www.plusminustsuchi.com 提供

A.一个规则任务进行云采集最少占用一个云节点,最多可以占满所有云节点
B.一个规则任务满足可拆分成子任务的情况下,最多拆成199个子任务 本文来自小莫扎特博客www.plusminustsuchi.com 提供
C.一个子任务占用一个节点,子任务全部执行完成意味着任务完成
D.一个规则任务拆成多个子任务分配到不同云节点就达到加速采集的效果

本文来自小莫扎特博客www.plusminustsuchi.com 提供


E.如果云节点被占满,那么新启动的任务或被拆分的子任务会进入等待队列,直到用户某个云节点执行完用户的某个任务释放出节点资源。

本文来自小莫扎特博客www.plusminustsuchi.com 提供
图 1 云采集运行中

本文来自小莫扎特博客www.plusminustsuchi.com 提供

如图红线处任务分配到云节点,多任务并发采集数据,如图红框处,由于节点被占满,只能进入等待队列,等待某个云节点执行完成后释放资源
本文来自小莫扎特博客www.plusminustsuchi.com 提供
二、云采集加速设置

本文来自小莫扎特博客www.plusminustsuchi.com 提供

由云采集原理D可知,如果要一个任务加速采集的效果,那么这个任务要满足拆分条件或者将任务改成满足拆分条件的任务,这样才能达到单任务加速的效果

本文来自小莫扎特博客www.plusminustsuchi.com 提供



满足拆分条件的任务分别为:
列表循环 本文来自小莫扎特博客www.plusminustsuchi.com 提供
B.文本列表循环
C.固定元素列表循环 本文来自小莫扎特博客www.plusminustsuchi.com 提供


列表循环、文本循环
本文来自小莫扎特博客www.plusminustsuchi.com 提供

示例网址:
对于非AJAX网站,以大众店铺为例,假设我要采集该网站所有分类下的店铺,那么我们可先采集分类的URL,然后做URL循环进行采集店铺信息,具体步骤如下: 本文来自小莫扎特博客www.plusminustsuchi.com 提供


步骤1 以先将所有具体分类采集下来,如图2 采集点评分类URL

本文来自小莫扎特博客www.plusminustsuchi.com 提供




图 2 采集点评分类URL 本文来自小莫扎特博客www.plusminustsuchi.com 提供

小贴士 采集完分类的URL后,我们就可以将这个URL作为URL循环进行数据提取,这样的话,通过八爪鱼自动拆分任务,就可以将不同的URL拆分成不同的子任务分配给不同的云节点进行数据采集,达到单任务加速的采集效果
本文来自小莫扎特博客www.plusminustsuchi.com 提供



步骤2 通过步骤1的采集,将URL建立URL循环进行数据采集,具体如截图3 URL循环列表
本文来自小莫扎特博客www.plusminustsuchi.com 提供



图3 URL循环列表采集

本文来自小莫扎特博客www.plusminustsuchi.com 提供





步骤3 对比效果,如图4 本机采集和URL循环列表云采集采集效率对比 本文来自小莫扎特博客www.plusminustsuchi.com 提供


图4 云采集采集速率
本文来自小莫扎特博客www.plusminustsuchi.com 提供




小贴士 云采集除了采集效率比本机采集高之外,还能节省用户自身电脑与网络资源,与本地采集消耗用户本地电脑资源和网络资源相比,云采集所用资源都是云节点资源,用户启动云采集后就可关闭客户端,八爪鱼会自动将数据整理汇总在八爪鱼客户端,用户只需要在数据提取到后,通过客户端查看或导出数据即可。
本文来自小莫扎特博客www.plusminustsuchi.com 提供



结语:URL循环的教程已经讲完,对于文本循环来说,原理和URL循环一致,通过对文本循环的拆分,达到单任务加速采集的效果,从而提升采集速率

本文来自小莫扎特博客www.plusminustsuchi.com 提供



固定元素列表循环
固定元素列表循环也是满足拆分条件的,需要的是固定元素列表循环点击配合一起使用,固定元素列表例如:
本文来自小莫扎特博客www.plusminustsuchi.com 提供



图5 固定元素列表-点击元素
本文来自小莫扎特博客www.plusminustsuchi.com 提供


但是下列情况是不会加快采集速率的,例如:
本文来自小莫扎特博客www.plusminustsuchi.com 提供

图 6 固定元素列表-提取数据

本文来自小莫扎特博客www.plusminustsuchi.com 提供




原因是因为固定元素列表-提取数据虽然可以拆分成子任务,但是因为提取同页面数据操作本身很快,所以几乎没有任务加速效果。 本文来自小莫扎特博客www.plusminustsuchi.com 提供


例如:

本文来自小莫扎特博客www.plusminustsuchi.com 提供


子任务A:打开网页(20s)-提取位置a数据()
子任务B:打开网页(20s)-提取位置b数据() 本文来自小莫扎特博客www.plusminustsuchi.com 提供
子任务C:打开网页(20s)-提取位置c数据()
...... 本文来自小莫扎特博客www.plusminustsuchi.com 提供
子任务N:打开网页(20s)-提取位置n数据()
如上例,虽然拆分了任务但是实际任务执行时间还是约等于21秒左右,和不拆分任务的时间比较的如下: 本文来自小莫扎特博客www.plusminustsuchi.com 提供
总任务S:
打开网页(20s)

本文来自小莫扎特博客www.plusminustsuchi.com 提供


提取位置a数据()
提取位置b数据()

本文来自小莫扎特博客www.plusminustsuchi.com 提供


提取位置c数据()
......

本文来自小莫扎特博客www.plusminustsuchi.com 提供


提取位置n数据()
此时我们可以看到,不拆分的时间T=20+*10=21S
本文来自小莫扎特博客www.plusminustsuchi.com 提供

所以虽然此时我们用不固定元素拆分了任务,但是没有带来显著的提取数据效率的提升

对于固定元素列表-点击元素就不一样了,因为点击元素往往都要打开详情页,例如: 本文来自小莫扎特博客www.plusminustsuchi.com 提供
子任务A:打开网页(20s)-点击位置元素a(20s)-提取位置a数据()
子任务B:打开网页(20s)-点击位置元素b(20s)提取位置b数据() 本文来自小莫扎特博客www.plusminustsuchi.com 提供
子任务C:打开网页(20s)-点击位置元素c(20s)-提取位置c数据()
...... 本文来自小莫扎特博客www.plusminustsuchi.com 提供
子任务N:打开网页(20s)-点击位置元素n(20s)n--提取位置n数据()
由于是子任务是同时执行的,此时时间T=20+20+=4S,约41秒左右

本文来自小莫扎特博客www.plusminustsuchi.com 提供



固定元素列表-点击元素,不拆分任务时的时间比较如下:
总任务S: 本文来自小莫扎特博客www.plusminustsuchi.com 提供
打开网页(20s)
点击位置元素a(20s)-提取位置a数据() 本文来自小莫扎特博客www.plusminustsuchi.com 提供
点击位置元素b(20s)-提取位置b数据()
点击位置元素c(20s)-提取位置c数据()

本文来自小莫扎特博客www.plusminustsuchi.com 提供


.....
点击位置元素n(20s)-提取位置n数据()
本文来自小莫扎特博客www.plusminustsuchi.com 提供

此时我们可以看到,不拆分的时间T=20+(20+)*n
当n=10时,T=221S,与拆分的41S比较,耗时几乎是拆分的5倍

本文来自小莫扎特博客www.plusminustsuchi.com 提供



综上所述:
满足拆分条件的任务分别为: 本文来自小莫扎特博客www.plusminustsuchi.com 提供
列表循环
B.文本列表循环 本文来自小莫扎特博客www.plusminustsuchi.com 提供
C.固定元素列表循环

内容版权声明:以上内容均为转载,如有侵犯原作者请联系删除!