一种分布式爬虫URL种子分发方法、调度节点及抓取节点.pdf

上传人:n****g 文档编号:6105306 上传时间:2019-04-12 格式:PDF 页数:11 大小:541.91KB
返回 下载 相关 举报
摘要
申请专利号:

CN201510648748.7

申请日:

2015.10.09

公开号:

CN106570011A

公开日:

2017.04.19

当前法律状态:

实审

有效性:

审中

法律详情:

实质审查的生效IPC(主分类):G06F 17/30申请日:20151009|||公开

IPC分类号:

G06F17/30

主分类号:

G06F17/30

申请人:

北京京东尚科信息技术有限公司; 北京京东世纪贸易有限公司

发明人:

廖耀华

地址:

100080 北京市海淀区杏石口路65号西杉创意园四区11C楼东段1-4层西段1-4层

优先权:

专利代理机构:

中原信达知识产权代理有限责任公司 11219

代理人:

张一军;姜劲

PDF下载: PDF下载
内容摘要

本发明提供一种分布式爬虫URL种子分发方法、调度节点及抓取节点,该方法包括:获取URL种子并将所述种子放入等待队列;向调度节点发送请求种子命令;接收所述请求种子命令并计算抓取节点的状态信息;根据所述抓取节点的状态信息,判断是否向所述抓取节点发送所述种子。通过本发明提供的调度节点的URL种子分发方法,能够使网络中的抓取节点不会因为处理速度慢而导致种子积压,也不会因为抓取节点处理速度过快而闲置,从而有利于所有抓取节点均保持最佳工作状态,节约并优化了网络资源配置。

权利要求书

1.一种分布式爬虫URL种子分发方法,其特征在于,所述方法包
括:
获取URL种子并将所述种子放入等待队列;
向调度节点发送请求种子命令;
接收所述请求种子命令并计算抓取节点的状态信息;
根据所述抓取节点的状态信息,判断是否向所述抓取节点发送所
述种子。
2.根据权利要求1所述的分布式爬虫URL种子分发方法,其特征
在于,所述种子是从种子仓库中获取的。
3.根据权利要求1所述的分布式爬虫URL种子分发方法,其特征
在于,计算抓取节点的状态信息包括:
若所述抓取节点的物理地址为空,则不发送所述种子;
若所述抓取节点的物理地址不为空,则读取所述抓取节点的状态
信息。
4.根据权利要求3所述的分布式爬虫URL种子分发方法,其特征
在于,读取所述抓取节点的状态信息还包括:
若没有所述抓取节点的状态数据,则建立所述调度节点与所述抓
取节点的连接,并向所述抓取节点发送特定数量的所述种子;
若有所述抓取节点的状态数据,则判断所述抓取节点的健康状态。
5.根据权利要求4所述的分布式爬虫URL种子分发方法,其特征
在于,判断所述抓取节点的健康状态还包括:
若所述抓取节点是健康状态,则对所述抓取节点进行饥渴度计算。
6.根据权利要求5所述的分布式爬虫URL种子分发方法,其特征
在于,计算所述抓取节点的饥渴度为计算种子积压时间和种子处理速
度。
7.根据权利要求6所述的分布式爬虫URL种子分发方法,其特征
在于,
若种子处理速率小于阈值或者种子积压时间超过阈值,则不向所
述抓取节点发送种子;
若种子处理速率大于等于阈值或者种子积压时间不超过阈值,则
执行质量度计算。
8.根据权利要求1所述的分布式爬虫URL种子分发方法,其特征
在于,根据所述抓取节点的状态信息,判断是否向所述抓取节点发送
所述种子还包括:
若0≤质量度≤阈值A,则向所述抓取节点发送特定数量N的种子;
若阈值A<质量度≤阈值B,则向所述抓取节点发送N/2数量的种
子;
若阈值B<质量度≤1,则不分发种子,同时预警通知用户。
9.一种用于分布式爬虫URL种子分发的调度节点,其特征在于,
该调度节点包括:
种子仓库,用于存放待分发的URL种子;
种子分发中心,用于向抓取节点分发所述URL种子;
计算模块,用于判断所述抓取节点的健康状态;
状态管理器,用于获取所述抓取节点的状态信息。
10.一种用于分布式爬虫URL种子分发的抓取节点,其特征在于,
该抓取节点包括:
请求线程,用于向调度节点发送获取URL种子请求;
网页下载器,用于下载所述URL种子相应网页;
文档解析器,用于解析所述网页的文档信息;
报告线程,用于将所述网页下载器和所述文档解析器的工作状态
发送至调度节点。

说明书

一种分布式爬虫URL种子分发方法、调度节点及抓取节点

技术领域

本发明涉及网络技术,具体来说涉及一种分布式爬虫URL种子分
发方法、调度节点及抓取节点。

背景技术

网络爬虫是一种获取整个互联网上所有或特定主题数据的程序。
由于网络资源浩如烟海,单机爬虫根本不可能完成这样的任务,解决
这一问题的直接办法是升级信息采集器的硬件,采用处理能力更强的
计算机系统,然而这种方法的扩展性有限,性价比也不高。因而人们
找了一个更好的选择,用分布式方式来进行网页信息采集,由于多个
网络爬虫共同运行,肯定会涉及到各个节点因为网络质量和个体性能
差异的问题,而这会导致不同抓取节点之间的工作效率即处理种子的
能力不同,因此需要一种更为合理的网络资源分配方式,使所有抓取
节点以各自最佳的工作状态运行。

发明内容

本发明提供一种优化的调度节点的URL种子分发方法、调度节点
及抓取节点,使某些抓取节点不会因为信息处理速度慢而导致种子积
压,也不会因为某些抓取节点处理速度过快而闲置,有利于所有抓取
节点均保持最佳工作状态,节约并优化网络资源配置。

本发明的技术方案是提供一种分布式爬虫URL种子分发方法,该
方法包括:获取URL种子并将所述种子放入等待队列;向调度节点发
送请求种子命令;接收所述请求种子命令并计算抓取节点的状态信息;
根据该抓取节点的状态信息,判断是否向该抓取节点发送种子。

可选的,种子是从种子仓库中获取的。

可选的,计算抓取节点的状态信息包括:

若该抓取节点的物理地址为空,则不发送种子;

若该抓取节点的物理地址不为空,则读取该抓取节点的状态信息。

可选的,该读取抓取节点的状态信息还包括:

若没有该抓取节点的状态数据,则建立该调度节点与该抓取节点
的连接,并向该抓取节点发送特定数量的种子;

若有该抓取节点的状态数据,则判断该抓取节点的健康状态。

可选的,判断该抓取节点的健康状态还包括:

若该抓取节点是健康状态,则对该抓取节点进行饥渴度计算。

可选的,计算该抓取节点的饥渴度为计算种子积压时间和种子处
理速度。

可选的,若种子处理速率小于阈值或者种子积压时间超过阈值,
则不向所述抓取节点分发种子;若种子处理速率大于等于阈值或者种
子积压时间不超过阈值,则执行质量度计算。

可选的,根据所述抓取节点的状态信息,判断是否向该抓取节点
发送种子还包括:

若0≤质量度≤阈值A,则向该抓取节点发送特定数量N的种子;

若阈值A<质量度≤阈值B,则向该抓取节点发送N/2数量的种子;

若阈值B<质量度≤1,则不分发种子,同时预警通知用户。

本发明还提供一种用于分布式爬虫URL种子分发的调度节点,该
调度节点包括:种子仓库,用于存放待分发的URL种子;种子分发中
心,用于向抓取节点分发所述URL种子;计算模块,用于判断所述抓
取节点的健康状态;状态管理器,用于获取所述抓取节点的状态信息。

本发明再一种用于分布式爬虫URL种子分发的抓取节点,该抓取
节点包括:请求线程,用于向调度节点发送获取URL种子请求;网页
下载器,用于下载所述URL种子相应网页;文档解析器,用于解析所
述网页的文档信息;报告线程,用于将所述网页下载器和所述文档解
析器的工作状态发送至调度节点。

通过本发明提供的调度节点的URL种子分发方法、调度节点及抓
取节点,能够使网络中的抓取节点不会因为处理速度慢而导致种子积
压,也不会因为抓取节点处理速度过快而闲置,从而有利于所有抓取
节点均保持最佳工作状态,节约并优化了网络资源配置。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例
描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的
附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在
不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
在附图中:

图1为本发明提供的分布式爬虫URL种子分发方法总体流程图;

图2为本发明提供的分布式爬虫URL种子分发方法、调度节点及
抓取节点的构成图;

图3为本发明提供的分布式爬虫URL种子分发方法详细流程图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚明白,下面
结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性
实施例及其说明用于解释本发明,但并不作为对本发明的限定。

本发明提供一种分布式爬虫URL种子分发方法,总体来说,调度
节点在分配种子之前,首先会对每个抓取节点的反馈信息进行分析判
断,以此决定是否给抓取节点发送种子。若调度节点决定对抓取节点
发送种子,则需要更加具体的分配方式。通过上述分配方式可使抓取
节点处于负载均衡的状态,即不会因抓取节点处理种子速度慢而导致
种子积压,也不会因抓取节点处理种子速度快而导致等待时间过长。

图1为本发明提供的分布式爬虫URL种子分发方法总体流程图。
如图1所示,分布式爬虫URL种子分发方法如下:

S101:获取URL种子并将所述种子放入等待队列;

S102:向调度节点发送请求种子命令;

S103:接收所述请求种子命令并计算抓取节点的状态信息;

S104:根据所述抓取节点的状态信息,判断是否向所述抓取节点
发送所述种子。

下面结合一个具体的实施例对本发明进行具体描述,然而值得注
意的是该具体实施例仅是为了更好地描述本发明,并不构成对本发明
的不当限定。

本发明的技术方案由调度节点和多个抓取节点组成,由于调度节
点和一个抓取节点的交互过程与多个抓取节点交互原理相同,所以在
此仅详细描述调度节点和一个抓取节点的交互过程。

图2为本发明提供的分布式爬虫URL种子分发方法的构成图。

如图2所示,调度节点1包括:种子分发中心2、计算模块3、状
态管理器4和种子仓库5;

抓取节点6包括:请求线程7、网页下载器8、文档解析器9、报
告线程10和数据存储器11。

图3为本发明提供的分布式爬虫URL种子分发方法详细流程图。

请结合图2和图3,该分布式爬虫URL种子分发方法如下:

S301:调度节点1从种子仓库5获取种子,并将种子放入种子等
待队列,等待种子分发中心2取种子。抓取节点6通过请求线程7向
调度节点1的种子分发中心2发送获取种子请求,请求获取种子。种
子分发中心2随即得到抓取节点6的MAC地址(物理地址)。

S302:若MAC地址为空,则拒绝向该抓取节点6发送种子;

S303:若MAC地址不为空,通过状态管理器4读取抓取节点6的
状态信息。

S304:若状态管理器4中没有存储该抓取节点6的状态数据,也
就是说,该抓取节点6是第一次发送连接请求,则调度节点1立即建
立与抓取节点6之间的连接,并从种子等待队列中将一定数量的种子
发送给抓取节点6。特别的是,这里一定数量是人为定义的一个值。对
于抓取节点第一次和调度节点建立连接或者调度节点没有抓取节点的
状态信息两种情况下,调度节点都会发送一定数量的种子。

若状态管理器4有抓取节点6的数据,则执行如下操作。

S305:根据抓取节点6的状态数据,计算模块3会判断该抓取节
点6的健康状态。具体判断标准是在过去的某段时间内,检测该抓取
节点6曾经是否向调度节点1发送过请求。若在过去某一时间段内抓
取节点6发送过请求信息,则判定该抓取节点6为健康状态。若在过
去某一时间段内抓取节点6没有发送过请求信息,则判定该抓取节点6
为死亡状态。然而,对于抓取节点6处于死亡状态还需进一步判断:
一种情况是该抓取节点6确实为死亡状态,此时后台技术人员将确认
该抓取节点6为真死亡状态;另一种情况是由于某种原因该抓取节点6
在报告状态数据时发生报告失败的情形,则判定该抓取节点6为假死
亡状态。

对于第一种情形,种子分发中心2直接为抓取节点6分发一定数
量的种子;

对于第二种情形,同时在最近一段时间(半个小时)内该抓取节
点6的状态数据未更新,种子分发中心2则会删除该抓取节点6的状
态数据,然后向该抓取节点6发送一定数量的种子,同时向用户预警,
告知用户节点6和调度节点1之间的网络可能存在问题。

S306:若抓取节点6是健康的,则进行饥渴度计算。饥渴度可以
从种子积压时间和种子处理速度来衡量。

具体来说,种子处理速率指的是抓取节点每秒钟处理种子的数量,
用公式表示为(上次请求剩余种子数-本次请求剩余种子数)/(上次请
求时间-本次请求时间)。

种子积压时间指的是抓取节点处理完剩余种子所需要的时间,用
公式表示为(本次请求剩余种子数/种子处理速率)。

如果种子处理速率小于阈值或者种子积压时间超过阈值时,那么
种子分发中心2就不向抓取节点6分发种子。

S307:如果种子处理速率大于等于阈值或者种子积压时间不超过
阈值时,则进行如下质量度计算。

质量度表示抓取节点6请求网页和解析网页的成功率。比如通过
网页下载器8种子请求网页是否正常;文档解析器9解析文档的时候
有没有出错等。这些信息都需要抓取节点6的报告线程10报告给调度
端的状态管理器4。数据存储器11用来暂存文档解析器9解析的数据
和URL地址信息,并通过发送线程分批发送到调度节点1的种子仓库
5中,以供抓取节点6请求种子使用。

质量度的计算用公式表示为(上次请求和本次请求时间段内执行
错误的种子数)/(上次请求剩余种子数-本次请求剩余种子数)。

若0≤质量度≤阈值A,则向抓取节点6发送特定数量N的种子;

若阈值A<质量度≤阈值B,则向抓取节点6发送N/2数量的种子;

若阈值B<质量度≤1,则不分发种子,同时预警通知用户。

在本发明一具体实施例中:阈值A可以定义为0.3;阈值B可以定
义为0.7。也就是说,当0≤质量度≤0.3时,向抓取节点发送数量N
的种子;当0.3<质量度≤0.7时,则向抓取节点发送数量N/2的种子;
当0.7<质量度≤1,则不发送种子。

S308:抓取节点获取对应数量的种子后,开始执行种子并向种子
分发中心报告自己的工作状态。

本发明的技术方案仅详细描述了调度节点和一个抓取节点的交互
过程,由于调度节点和一个抓取节点的交互过程与多个抓取节点交互
原理相同,故在此不再赘述。

本发明还提供一种用于分布式爬虫URL种子分发的调度节点,该
调度节点包括:种子仓库,用于存放待分发的URL种子;种子分发中
心,用于向抓取节点分发URL种子;计算模块,用于判断抓取节点的
健康状态;状态管理器,用于获取抓取节点的状态信息。

本发明再一种用于分布式爬虫URL种子分发的抓取节点,该抓取
节点包括:请求线程,用于向调度节点发送获取URL种子请求;网页
下载器,用于下载URL种子相应网页;文档解析器,用于解析网页的
文档信息;报告线程,用于将网页下载器和文档解析器的工作状态发
送至调度节点。

通过本发明提供的优化的调度节点的URL种子分发方法、调度节
点及抓取节点,能够对多个抓取节点反馈的状态信息进行分析判断,
以具体解决是否给其中每一个抓取节点分配种子和分配多少种子的问
题。通过这种分配策略以使抓取节点处于负载均衡的状态,不会因为
抓取节点处理种子速度慢而导致种子积压,也不会因为抓取节点处理
种子速度过快而闲置,合理优化了网络资源配置。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果
进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体
实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和
原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明
的保护范围之内。

一种分布式爬虫URL种子分发方法、调度节点及抓取节点.pdf_第1页
第1页 / 共11页
一种分布式爬虫URL种子分发方法、调度节点及抓取节点.pdf_第2页
第2页 / 共11页
一种分布式爬虫URL种子分发方法、调度节点及抓取节点.pdf_第3页
第3页 / 共11页
点击查看更多>>
资源描述

《一种分布式爬虫URL种子分发方法、调度节点及抓取节点.pdf》由会员分享,可在线阅读,更多相关《一种分布式爬虫URL种子分发方法、调度节点及抓取节点.pdf(11页珍藏版)》请在专利查询网上搜索。

本发明提供一种分布式爬虫URL种子分发方法、调度节点及抓取节点,该方法包括:获取URL种子并将所述种子放入等待队列;向调度节点发送请求种子命令;接收所述请求种子命令并计算抓取节点的状态信息;根据所述抓取节点的状态信息,判断是否向所述抓取节点发送所述种子。通过本发明提供的调度节点的URL种子分发方法,能够使网络中的抓取节点不会因为处理速度慢而导致种子积压,也不会因为抓取节点处理速度过快而闲置,从而有。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1