云采集原理以及规则加速设置教程
2017-06-26 19:10:42 阅读量: 47840
云采集原理以及规则加速设置教程
对于旗舰版以上的用户,可以通过云采集实现多任务并发和单任务加速的采集效果以便用户快速的收集整理互联网公开数据,本教程主要讲云采集原理、规则加速设置
一、云采集原理
A.一个规则任务进行云采集最少占用一个云节点,最多可以占满所有云节点
B.一个规则任务满足可拆分成子任务的情况下,最多拆成199个子任务
C.一个子任务占用一个节点,子任务全部执行完成意味着任务完成
D.一个规则任务拆成多个子任务分配到不同云节点就达到加速采集的效果
E.如果云节点被占满,那么新启动的任务或被拆分的子任务会进入等待队列,直到用户某个云节点执行完用户的某个任务释放出节点资源。
图 1 云采集运行中
如图红线处任务分配到云节点,多任务并发采集数据,如图红框处,由于节点被占满,只能进入等待队列,等待某个云节点执行完成后释放资源
二、云采集加速设置
由云采集原理D可知,如果要一个任务加速采集的效果,那么这个任务要满足拆分条件或者将任务改成满足拆分条件的任务,这样才能达到单任务加速的效果
满足拆分条件的任务分别为:
A.URL列表循环
B.文本列表循环
C.固定元素列表循环
2.1URL列表循环、文本循环
示例网址:http://www.dianping.com/search/category/15/30
对于非AJAX网站,以大众店铺为例,假设我要采集该网站所有分类下的店铺,那么我们可先采集分类的URL,然后做URL循环进行采集店铺信息,具体步骤如下:
步骤1 以先将所有具体分类采集下来,如图2 采集点评分类URL
图 2 采集点评分类URL
小贴士 采集完分类的URL后,我们就可以将这个URL作为URL循环进行数据提取,这样的话,通过八爪鱼自动拆分任务,就可以将不同的URL拆分成不同的子任务分配给不同的云节点进行数据采集,达到单任务加速的采集效果
步骤2 通过步骤1的采集,将URL建立URL循环进行数据采集,具体如截图3 URL循环列表
图3 URL循环列表采集
步骤3 对比效果,如图4 本机采集和URL循环列表云采集采集效率对比
图4 云采集采集速率
小贴士 云采集除了采集效率比本机采集高之外,还能节省用户自身电脑与网络资源,与本地采集消耗用户本地电脑资源和网络资源相比,云采集所用资源都是云节点资源,用户启动云采集后就可关闭客户端,八爪鱼会自动将数据整理汇总在八爪鱼客户端,用户只需要在数据提取到后,通过客户端查看或导出数据即可。
结语:URL循环的教程已经讲完,对于文本循环来说,原理和URL循环一致,通过对文本循环的拆分,达到单任务加速采集的效果,从而提升采集速率
2.2固定元素列表循环
固定元素列表循环也是满足拆分条件的,需要的是固定元素列表循环点击配合一起使用,固定元素列表例如:
图5 固定元素列表-点击元素
但是下列情况是不会加快采集速率的,例如:
图 6 固定元素列表-提取数据
原因是因为固定元素列表-提取数据虽然可以拆分成子任务,但是因为提取同页面数据操作本身很快,所以几乎没有任务加速效果。
例如:
子任务A:打开网页(20s)-提取位置a数据(0.1s)
子任务B:打开网页(20s)-提取位置b数据(0.1s)
子任务C:打开网页(20s)-提取位置c数据(0.1s)
......
子任务N:打开网页(20s)-提取位置n数据(0.1s)
如上例,虽然拆分了任务但是实际任务执行时间还是约等于21秒左右,和不拆分任务的时间比较的如下:
总任务S:
打开网页(20s)
提取位置a数据(0.1s)
提取位置b数据(0.1s)
提取位置c数据(0.1s)
......
提取位置n数据(0.1s)
此时我们可以看到,不拆分的时间T=20+0.1*10=21S
所以虽然此时我们用不固定元素拆分了任务,但是没有带来显著的提取数据效率的提升
对于固定元素列表-点击元素就不一样了,因为点击元素往往都要打开详情页,例如:
子任务A:打开网页(20s)-点击位置元素a(20s)-提取位置a数据(0.1s)
子任务B:打开网页(20s)-点击位置元素b(20s)提取位置b数据(0.1s)
子任务C:打开网页(20s)-点击位置元素c(20s)-提取位置c数据(0.1s)
......
子任务N:打开网页(20s)-点击位置元素n(20s)n--提取位置n数据(0.1s)
由于是子任务是同时执行的,此时时间T=20+20+0.1=40.1S,约41秒左右
固定元素列表-点击元素,不拆分任务时的时间比较如下:
总任务S:
打开网页(20s)
点击位置元素a(20s)-提取位置a数据(0.1s)
点击位置元素b(20s)-提取位置b数据(0.1s)
点击位置元素c(20s)-提取位置c数据(0.1s)
.....
点击位置元素n(20s)-提取位置n数据(0.1s)
此时我们可以看到,不拆分的时间T=20+(20+0.1)*n
当n=10时,T=221S,与拆分的41S比较,耗时几乎是拆分的5倍
综上所述:
满足拆分条件的任务分别为:
A.URL列表循环
B.文本列表循环
C.固定元素列表循环