云采集原理和规则加速设置
优采云 发布时间: 2020-08-13 16:32通过优采云云采集,可以实现多个任务并发采集,极大提升采集效率。
云采集原理是哪些?什么样的规则可实现云加速?本文将详尽讲解。
一、云采集原理
云采集是指,使用由优采云提供的云服务集群进行数据采集。优采云拥有5000+云服务器,7*24小时不间断运行(一台云服务器可看做一个云节点)。
优采云的采集任务运行在云节点上时:
a. 在满足可分拆的情况下,1个任务最多拆成100个子任务。(3类任务可分拆,下文将详尽讲解)
b.1个任务/子任务需占用一个云节点进行采集。也就是说,1个云节点同时只能运行一个任务/子任务。
c.不同版本的云节点数是不一样的。旗舰版:6-10个动态云节点。旗舰+:8-12个动态云节点。
d. 基于以上信息,可能会出现任务/拆分子任务数>云节点数的情况。如果帐号内的云节点数已被运行中的任务/子任务占满,则新启动的任务/被分拆的子任务会步入等待队列,直到某个任务/子任务采集完成,释放出多余的节点资源,它们就会有节点进行采集。
如何查看任务的子任务分拆和运行情况?
在【我的任务】中找到已运行云采集的任务,点击【详情】,查看当前任务的子任务分拆和运行情况。如图,该任务分拆了30个子任务,其中1个在运行中,29个已完成。
子任务的状态有以下几种:
已分拆:当前任务分拆成了多少个子任务。为1时,表示该任务未进行分拆(任务本身不支持分拆或勾选了云采集不分拆)。大于1时,表示已进行分拆。图中任务分拆成了30个子任务。
等待中:还未运行采集的子任务个数。
运行中:当前正在采集数据的子任务个数。每个任务会占用一个云节点,故所有任务在运行的子任务数之和大于等于帐号节点数。
已完成:已完成采集的子任务个数。
已停止:程序手动停止采集或人为自动停止采集的子任务个数。
如果运行了某个云采集任务,但是仍然没有采集到数据, 可以在子任务状态中查看是否有子任务在运行,如*敏*感*词*任务都是等待中状态,说明该帐号的云节点已被其他任务占满。请等待多余的云节点资源释放下来。
二、云采集加速设置
由云采集原理可知,一个任务要分拆成多个子任务,使用更多的云节点同时运行多个子任务,才能实现加速采集的疗效。
任务假如要分拆成子任务,需满足一定条件。以下三类任务是可以分拆的:
1、URL循环
2、文本循环
3、固定元素循环
1、URL循环
URL循环类的规则,可分拆成多个子任务,同时运行在多个云节点上,实现加速。
当URL数100时,拆分成URL数/100的子任务数(取整数)。例,循环中有30个URL,将被分拆成30个子任务;循环中有278个URL,将被分拆成2个子任务。
示例网址:
.......
等30个易迅商品详情页网址,需要采集每个详情页中的数据。
Step1:建立URL循环
Step2:启动云采集,点击【详情】,可以见到此任务的30条URL,拆分成30个子任务同时采集,加快采集速度
常用场景:当有一个商品/文章列表,需要点击商品/文章链接,进入详情页采集时,我们可以做一个【循环-点击链接-提取详情数据】的规则,在一个任务中依次点击步入详情页采集数据。也可以先采集列表的商品/文章链接,然后使用URL循环,配合云采集将其分拆成多个子任务,分配到多个云节点上同时采集,极大推动采集速度。
示例网址:电子书&enc=utf-8&wq=电子书
先获得列表页商品网址,然后再用上文讲的方式,用URL循环,配合云采集加速采集。获得列表页网址演示如下:
2、文本循环
文本循环类的规则,可分拆成多个子任务,同时运行在多个云节点上,实现加速。
当输入的文本数100时,拆分成输入文本数/100的子任务数。
文本循环分拆原理和URL循环一致,通过对文本循环的分拆,达到加速采集的疗效。具体可见批量输入关键词查询,采集查询结果教程。
3、固定元素列表循环
固定元素列表类的规则,可分拆成多个子任务,同时运行在多个云节点上,实现加速。
当固定元素列表类数100时,拆分成固定元素列表数/100的子任务数。
值得注意的是,【循环-点击元素】类规则,使用【固定元素列表】的循环形式后云分拆,才会有显著加速疗效,如下图所示:
【循环-点击元素】有2种常见采集场景:①点击商品/文章链接步入详情页,采集详情页数据的情况。② 点击条件类链接进行分类采集。
如果是【循环-提取数据】类规则,没有点击步骤,则使用【固定元素列表】的循环形式后云分拆,加速疗效并不显著,如下图所示:
下面讲一个【循环-点击元素】类规则使用【固定元素列表】进行云分拆的实例:
示例网址:%E6%89%8B%E6%9C%BA&enc=utf-8&wq=%E6%89%8B%E6%9C%BA&pvid=e8885bd7095549c19e11ae459702097d
采集需求:点击步入商品详情页,采集每个详情页中的数据。
Step1:建立循环列表,查看手动生成的循环形式。可以看见,循环形式为不固定元素列表循环:使用XPath定位,一条XPath对应循环列表中的一个列表。如图示例中,30条XPath对应30个商品列表。
Step2:启动云采集,点击【详情】,可以见到此任务的30条固定元素列表,拆分成30个子任务,加快采集速度。
【不固定元素列表】为【固定元素列表】的关系
对于【循环-点击元素】类规则,优采云自动生成的循环形式通常为【不固定元素列表】,以便于云上分拆加速。
本质上【不固定元素列表】和【固定元素列表】都是使用XPath进行定位,两者可以互相改写。下面看2个改写实例。
将【不固定元素列表】改为【固定元素列表】
示例网址:%B4%F3%CA%FD%BE%DD、
采集需求:采集页面前20个图片的地址
按照采集列表数据的方式,配置规则。自动生成的循环形式为【不固定元素列表】,定位XPath为://body/div[2]/div[2]/div[4]/div[1]/ul[1]/li。
将//body/div[2]/div[2]/div[4]/div[1]/ul[1]/li 复制到在火狐浏览器中观察,LI代表列表,LI[1]是指第1个列表,LI[2]是指第2个列表......按照这个规律,20个列表的【固定元素列表】定位XPath为:
//body/div[2]/div[2]/div[4]/div[1]/ul[1]/li[1]
//body/div[2]/div[2]/div[4]/div[1]/ul[1]/li[2]
......
//body/div[2]/div[2]/div[4]/div[1]/ul[1]/li[19]
//body/div[2]/div[2]/div[4]/div[1]/ul[1]/li[20]
(如果固定元素列表好多,可以借助于Excel批量生成功能,根据数字变化规律,自动生成XPath。)
在优采云中做相应更改。选择循环形式为【固定元素列表】,并将以上XPath复制到文本框中,然后点击【应用】保存。可以看见,定位到页面中的全部20个图片列表。
将【固定元素列表】改为【不固定元素列表】
以上文中的易迅规则为例,观察以上固定元素列表循环中生成的XPath:
//UL[@class="gl-warp clearfix"]/LI[1]/DIV[1]/DIV[4]/A[1]
//UL[@class="gl-warp clearfix"]/LI[2]/DIV[1]/DIV[4]/A[1]
.......
//UL[@class="gl-warp clearfix"]/LI[29]/DIV[1]/DIV[4]/A[1]
//UL[@class="gl-warp clearfix"]/LI[30]/DIV[1]/DIV[4]/A[1]
30条XPath具有相同的特点:只有LI前面的数字不同(不同的数字代表不同的列表,LI[1]是指第1个列表,LI[2]是指第2个列表)。根据这个特点,我们可以写一条通用XPath://UL[@class="gl-warp clearfix"]/LI/DIV[1]/DIV[4]/A[1]。
在优采云中做相应更改。选择循环形式为【不固定元素列表】,并将//UL[@class="gl-warp clearfix"]/LI/DIV[1]/DIV[4]/A[1] 复制到文本框中。可以看见,定位到页面中的全部30个商品链接。