首页 / 专利库 / 物理 / 正电子 / 分布式网络爬虫任务的调度方法及装置

分布式网络爬虫任务的调度方法及装置

阅读:1019发布:2020-08-16

专利汇可以提供分布式网络爬虫任务的调度方法及装置专利检索,专利查询,专利分析的服务。并且本 发明 提供一种分布式 网络爬虫 任务的调度方法及装置,方法包括:获取分布式网络中每个爬虫 节点 的处理能 力 ;按照预设的优先级顺序并根据每个爬虫节点的处理能力为每个爬虫节点分配相应的待处理任务,以使得爬虫节点对所分配的待处理任务进行处理。本发明提供的分布式网络爬虫任务的调度方法及装置,按照预设的优先级顺序并根据每个爬虫节点的处理能力为爬虫节点分配相应数量的待处理任务,实现了对爬虫节点的有效管理,并且保证了每个爬虫节点按照自身处理能力对所分配的待处理任务进行处理的效率,进而提高了该调度方法的实用性。,下面是分布式网络爬虫任务的调度方法及装置专利的具体信息内容。

1.一种分布式网络爬虫任务的调度方法,其特征在于,包括:
获取分布式网络中每个爬虫节点的处理能
按照预设的优先级顺序并根据每个爬虫节点的处理能力为每个爬虫节点分配相应的待处理任务,以使得所述爬虫节点对所分配的待处理任务进行处理。
2.根据权利要求1所述的方法,其特征在于,还包括:
根据每个爬虫节点的处理能力确定所述分布式网络的最大并发访问量;
获取所述待处理任务,并根据所获取的待处理任务确定待处理任务量;
若所获取的待处理任务量大于或者等于所述最大并发访问量,则停止获取所述待处理任务;或者,
若所获取的待处理任务量小于所述最大并发访问量,则继续获取所述待处理任务。
3.根据权利要求1所述的方法,其特征在于,所述获取分布式网络中每个爬虫节点的处理能力,具体包括:
按照预设的时间周期向每个爬虫节点发送心跳请求,以使得所述爬虫节点根据所述心跳请求发送所述爬虫节点的处理能力;
接收所述爬虫节点发送的处理能力,其中,所述处理能力包括以下至少之一:下载能力、解析能力、负载信息、内存信息、未分配任务时间、处理正确率和处理时间。
4.根据权利要求3所述的方法,其特征在于,按照预设的优先级顺序并根据每个爬虫节点的处理能力为每个爬虫节点分配相应的待处理任务,以使得所述爬虫节点对所分配的待处理任务进行处理,具体包括:
若所述爬虫节点的未分配任务时间大于预设的时间阈值,则优先为该爬虫节点按照所述优先级由高到低的顺序分配所述待处理任务;或者,
若所述爬虫节点的负载信息小于预设的负载阈值,则继续按照所述优先级由高到低的顺序为所述爬虫节点分配所述待处理任务;或者,
若所述爬虫节点的负载信息大于或等于预设的负载阈值,则向其他爬虫节点按照所述优先级由高到低的顺序分配所述待处理任务;
其中,所分配的待处理任务所需要的处理能力小于所述爬虫节点的处理能力。
5.根据权利要求3所述的方法,其特征在于,在按照预设的时间周期向每个爬虫节点发送心跳请求之后,所述方法还包括:
在预设时间段内,若未收到所述爬虫节点发送的处理能力,则确定所述爬虫节点的未响应信息,其中,所述未响应信息包括:未响应时间信息和未响应次数信息;
若所述未响应次数信息大于预设的次数阈值信息,则按照预设的调整策略调整所述爬虫节点的处理能力。
6.根据权利要求3所述的方法,其特征在于,所述方法还包括:
在预设的时间段内,根据所述处理正确率和处理时间对所述爬虫节点进行管理;
若所述爬虫节点对第一数量的待处理任务进行处理的处理时间大于预设的时间阈值,则将该爬虫节点删除,其中,所述第一数量大于预设的第一数量阈值;和/或,若所述爬虫节点对第二数量的待处理任务进行处理的处理正确率小于预设的正确率阈值,则将该爬虫节点删除,其中,所述第二数量大于预设的第二数量阈值。
7.一种分布式网络爬虫任务的调度装置,其特征在于,包括:
获取模,用于获取分布式网络中每个爬虫节点的处理能力;
分配模块,用于按照预设的优先级顺序并根据每个爬虫节点的处理能力为每个爬虫节点分配相应的待处理任务,以使得所述爬虫节点对所分配的待处理任务进行处理。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
确定模块,用于根据每个爬虫节点的处理能力确定所述分布式网络的最大并发访问量;
所述获取模块,还用于:
获取所述待处理任务,并根据所获取的待处理任务确定待处理任务量;
若所获取的待处理任务量大于或者等于所述最大并发访问量,则停止获取所述待处理任务;或者,
若所获取的待处理任务量小于所述最大并发访问量,则继续获取所述待处理任务。
9.根据权利要求7所述的装置,其特征在于,所述获取模块,具体用于:
按照预设的时间周期向每个爬虫节点发送心跳请求,以使得所述爬虫节点根据所述心跳请求发送所述爬虫节点的处理能力;
接收所述爬虫节点发送的处理能力,其中,所述处理能力包括以下至少之一:下载能力、解析能力、负载信息、内存信息、未分配任务时间、处理正确率和处理时间。
10.根据权利要求9所述的装置,其特征在于,所述分配模块,具体用于:
若所述爬虫节点的未分配任务时间大于预设的时间阈值,则优先为该爬虫节点按照所述优先级由高到低的顺序分配所述待处理任务;或者,
若所述爬虫节点的负载信息小于预设的负载阈值,则继续按照所述优先级由高到低的顺序为所述爬虫节点分配所述待处理任务;或者,
若所述爬虫节点的负载信息大于或等于预设的负载阈值,则向其他爬虫节点按照所述优先级由高到低的顺序分配所述待处理任务;
其中,所分配的待处理任务所需要的处理能力小于所述爬虫节点的处理能力。
11.根据权利要求9所述的装置,其特征在于,
确定模块,还用于在按照预设的时间周期向每个爬虫节点发送心跳请求之后,在预设时间段内,若未收到所述爬虫节点发送的处理能力,则确定所述爬虫节点的未响应信息,其中,所述未响应信息包括:未响应时间信息和未响应次数信息;
所述装置还包括:
调整模块,用于若所述未响应次数信息大于预设的次数阈值信息,则按照预设的调整策略调整所述爬虫节点的处理能力。
12.根据权利要求9所述的装置,其特征在于,所述装置还包括:管理模块,所述管理模块用于:
在预设的时间段内,根据所述处理正确率和处理时间对所述爬虫节点进行管理;
若所述爬虫节点对第一数量的待处理任务进行处理的处理时间大于预设的时间阈值,则将该爬虫节点删除,其中,所述第一数量大于预设的第一数量阈值;和/或,若所述爬虫节点对第二数量的待处理任务进行处理的处理正确率小于预设的正确率阈值,则将该爬虫节点删除,其中,所述第二数量大于预设的第二数量阈值。

说明书全文

分布式网络爬虫任务的调度方法及装置

技术领域

[0001] 本发明涉及爬虫节点技术领域,尤其涉及一种分布式网络爬虫任务的调度方法及装置。

背景技术

[0002] 大数据时代,数据的价值不言而喻,搜索引擎、舆情系统、比价系统等都是以获取大量数据为基础的,故爬虫节点成为不可或缺的重要组成部分。随着互联网的发展,信息和知识正在呈爆炸式增长,这给爬虫节点带来了更高的挑战。单节点爬虫结构已无法满足需求,分布式爬虫节点应运而生。
[0003] 分布式爬虫节点由多个爬虫节点组成,按照通信方式不同可分为主从模式、自治模式与混合模式。其中主从模式方式,是指由一台主机作为调度端负责所有运行的爬虫节点进行管理,爬虫节点只需要从调度端那里接收抓取任务,并把新生成抓取任务提交给调度端再分配就可以了,在这个过程中不必与其他爬虫通信,这种方式实现简单明晰且有利于管理。
[0004] 在现有技术中,通过共享任务目录实现分布式爬虫任务的协同任务调度,然而,上述任务调度方式缺乏对爬虫节点的统一管理,且缺少基于不同任务对资源的需求而对爬虫节点进行分别管理,从而未实现对网络爬点的有效管理,进而降低了网络爬点的任务处理效率。

发明内容

[0005] 本发明提供一种分布式网络爬虫任务的调度方法及装置,可以有效地克服现有技术中存在的未实现对网络爬点的有效管理,进而降低了网络爬点的任务处理效率的问题。
[0006] 本发明的一方面提供了一种分布式网络爬虫任务的调度方法,包括:
[0007] 获取分布式网络中每个爬虫节点的处理能
[0008] 按照预设的所述优先级顺序并根据每个爬虫节点的处理能力为每个爬虫节点分配相应的待处理任务,以使得所述爬虫节点对所分配的待处理任务进行处理。
[0009] 本发明的另一方面提供了一种分布式网络爬虫任务的调度装置,包括:
[0010] 获取模,用于获取分布式网络中每个爬虫节点的处理能力;
[0011] 分配模块,用于按照预设的优先级顺序并根据每个爬虫节点的处理能力为每个爬虫节点分配相应的待处理任务,以使得所述爬虫节点对所分配的待处理任务进行处理。
[0012] 本发明提供的分布式网络爬虫任务的调度方法及装置,通过按照预设的优先级并根据每个爬虫节点的处理能力为爬虫节点分配相应数量的待处理任务,实现了对爬虫节点的有效管理,并且保证了每个爬虫节点按照自身处理能力对所分配的待处理任务进行处理的效率,进而提高了该调度方法的实用性,有利于市场的推广与应用。附图说明
[0013] 图1为本发明一实施例提供的一种分布式网络爬虫任务的调度方法的流程示意图;
[0014] 图2为本发明另一实施例提供的一种分布式网络爬虫任务的调度方法的流程示意图;
[0015] 图3为本发明又一实施例提供的一种分布式网络爬虫任务的调度方法的流程示意图;
[0016] 图4为本发明再一实施例提供的一种分布式网络爬虫任务的调度方法的流程示意图;
[0017] 图5为本发明又一实施例提供的一种分布式网络爬虫任务的调度方法的流程示意图;
[0018] 图6为本发明再一实施例提供的一种分布式网络爬虫任务的调度方法的流程示意图;
[0019] 图7为本发明实施例提供的一种分布式网络爬虫任务的调度装置的结构示意图;
[0020] 图8为本发明具体应用实施例提供的分布式网络爬虫架构的结构示意图。

具体实施方式

[0021] 下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实例用于说明本发明,但不用来限制本发明的范围。
[0022] 图1为本发明一实施例提供的一种分布式网络爬虫任务的调度方法的流程示意图;参考附图1可知,本实施例提供了一种分布式网络爬虫任务的调度方法,该调度方法用于根据网络爬虫的处理能力以及任务的优先级顺序为网络爬虫分配任务,具体的,该方法包括:
[0023] S101:获取分布式网络中每个爬虫节点的处理能力;
[0024] 其中,分布式网络中存在多个爬虫节点,为了便于为每个爬虫节点分配任务,需要获取每个爬虫节点的处理能力,该处理能力可以用于作为判断为该爬虫节点分配任务量的参考因数,例如:若爬虫节点的处理能力较高,那么可以为该爬虫节点分配数量较大的任务;若该爬虫节点的处理能力较低,则可以为该爬虫节点分配数量较小的任务,以保证对任务进行处理的速度和效率。
[0025] S102:按照预设的优先级顺序并根据每个爬虫节点的处理能力为每个爬虫节点分配相应的待处理任务,以使得爬虫节点对所分配的待处理任务进行处理。
[0026] 其中,优先级顺序为预先设置的,一般情况下,可以按照优先级由高到低的顺序获取待处理任务,而对于待处理任务而言,可以根据所需要的处理时间、紧急程度、重要程度等等判断优先级顺序,具体的,本领域技术人员可以根据具体的设计需求确定优先级判断标准,在此不再赘述;当确定好优先级之后,根据最大并发访问量并按照优先级顺序分配处理任务;例如,可以预先设置n个优先级,RES_PRIORITY_LEVEL_1为最高优先级,RES_PRIORITY_LEVEL_n为最低优先级。假如每次固定取fetch_num个任务,其步骤如下;
[0027] 首先,取RES_PRIORITY_LEVEL_1的任务,若取到的任务不足fetch_num个,还差n个,则继续获取其他优先级的任务;
[0028] 其次,取RES_PRIORITY_LEVEL_2的任务,取最多(n/2+1)个任务。此时假设还差m个;
[0029] 再次,RES_PRIORITY_LEVEL_3,RES_PRIORITY_LEVEL_4以此类推,剩余k个;
[0030] 最后,RES_PRIORITY_LEVEL_n取最多k个任务。
[0031] 其中,需要注意的是所获取的fetch_num个任务量小于最大并发访问量,以保证分布式网络对每个获取的任务进行稳定、有效的处理。
[0032] 当分布式网络获取完待处理任务后,则可以按照待处理任务的优先级顺序并结合每个爬虫节点的处理能力为每个爬虫节点进行任务分配,本实施例对于具体的分配原则不做限定,本领域技术人员可以根据具体的设计需求进行设置,只要能够使得每个爬虫节点均可以按照自身的处理能够对待处理任务进行分析处理即可,在此不再赘述。
[0033] 本实施例提供的分布式网络爬虫任务的调度方法,通过按照预设的优先级并根据每个爬虫节点的处理能力为爬虫节点分配相应数量的待处理任务,实现了对爬虫节点的有效管理,并且保证了每个爬虫节点按照自身处理能力对所分配的待处理任务进行处理的效率,进而提高了该调度方法的实用性,有利于市场的推广与应用。
[0034] 图2为本发明另一实施例提供的一种分布式网络爬虫任务的调度方法的流程示意图;在上述实施例的基础上,继续参考附图1-2可知,本实施例将方法设置为还包括:
[0035] S201:根据每个爬虫节点的处理能力确定分布式网络的最大并发访问量;
[0036] 由于分布式网络包括多个爬虫节点,因此,可以根据每个爬虫节点的处理能力分析出该分布式网络的最大并发访问量,该最大并发访问量为该分布式网络可以处理的任务最大量,可以在分布式网络接收任务时作为接收任务量的上限值。
[0037] S202:获取所述待处理任务,并根据所获取的待处理任务确定待处理任务量;
[0038] 当获取待处理任务之后,可以确定待处理任务量,其中,需要说明的是,待处理任务量与待处理任务所需要的处理能力呈正比;而按照优先级级别由高到低的顺序获取待处理任务,有效地满足了用户对待处理任务区别对待的需要,进一步提高了该调度方法使用的方便可靠性。
[0039] S203:若所获取的待处理任务量大于或者等于最大并发访问量,则停止获取待处理任务;或者,
[0040] 当确定待处理任务量之后,将待处理任务量与最大并发访问量进行分析比较,若待处理任务量大于或等于最大并发访问量,则说明此时所获取的待处理任务量所需要的处理能力已经大于分布式网络的最大处理能力,此时,为了保证分布式网络对每个待处理任务进行处理的稳定可靠性,则控制停止获取待处理任务量,其中,停止获取待处理任务可以包括停止主动获取待处理任务和停止接收其他发送端所发送的待处理任务。
[0041] S204:若所获取的待处理任务量小于最大并发访问量,则按照优先级由高到低的顺序继续获取待处理任务。
[0042] 若待处理任务量小于最大并发访问量,则说明此时所获取的待处理任务量所需要的处理能力还未达到分布式网络的最大处理能力,此时,为了避免分布式网络的处理能力的浪费,可以按照优先级由高到低的顺序继续获取待处理任务,其中,继续获取待处理任务可以包括继续主动获取待处理任务和继续接收其他发送端所发送的待处理任务。
[0043] 通过确定所获取的待处理任务量,然后将待处理任务量与最大并发访问量进行分析比较,可以有效地保证分布式网络对每个待处理任务进行处理的稳定可靠性,同时也避免了分布式网络的处理能力的浪费,进一步提高了该调度方法使用的稳定可靠性。
[0044] 图3为本发明又一实施例提供的一种分布式网络爬虫任务的调度方法的流程示意图;在上述实施例的基础上,继续参考附图3可知,本实施例对于获取每个爬虫节点的处理能力的具体实现过程不做限定,本领域技术人员可以根据具体的设计需求进行设置,较为优选的,将获取分布式网络中每个爬虫节点的处理能力设置为具体包括:
[0045] S1011:按照预设的时间周期向每个爬虫节点发送心跳请求,以使得爬虫节点根据心跳请求发送爬虫节点的处理能力;
[0046] 其中,时间周期为预先设置的,对于具体的时间范围不做限定,本领域技术人员可以根据具体的设计需求进行设置,例如可以设置为1h、30min、1.5h等等;另外,所发送的心跳请求用于获取每个爬虫节点的处理能力,进而可以判断爬虫节点是否工作正常。
[0047] S1012:接收爬虫节点发送的处理能力,其中,处理能力包括以下至少之一:下载能力、解析能力、负载信息、内存信息、未分配任务时间、处理正确率和处理时间。
[0048] 在爬虫节点接收到心跳请求之后,可以根据该心跳请求返回处理能力,进而可以获取到每个爬虫节点的处理能力,其中,将处理能力设置为包括下载能力、解析能力、负载信息、内存信息等等,有效地确定了处理能力的内容,进而保证了处理能力获取的准确可靠性,进而提高了该调度方法使用的稳定可靠性。
[0049] 图4为本发明再一实施例提供的一种分布式网络爬虫任务的调度方法的流程示意图;在上述实施例的基础上,继续参考附图4可知,本实施例对于按照预设的优先级顺序并根据每个爬虫节点的处理能力为每个爬虫节点分配相应的待处理任务,以使得所述爬虫节点对所分配的待处理任务进行处理的具体实现过程不做限定,本领域技术人员可以根据具体的设计需求进行设置,其中,较为优选的,可以将按照预设的优先级顺序并根据每个爬虫节点的处理能力为每个爬虫节点分配相应的待处理任务,以使得所述爬虫节点对所分配的待处理任务进行处理设置为具体包括:
[0050] S1021:若爬虫节点的未分配任务时间大于预设的时间阈值,则优先为该爬虫节点按照优先级由高到低的顺序分配待处理任务;或者,
[0051] 其中,时间阈值为预先设置的,具体的数值范围本领域技术人员可以根据具体的设计需求来进行设置,在此不再赘述;爬虫节点的未分配任务时间用于表示没有为该爬虫节点分配任务的时间,也就是说,该爬虫节点已经不进行任务处理工作的时间;当检测到爬虫节点的未分配任务时间大于预设的时间阈值时,则说明该爬虫节点已经空间很久了,此时,则可以优先将该爬虫节点按照优先级由高到低的顺序分配待处理任务,这样可以有效地保证待处理任务处理的及时性和可靠性,并且还不会影响其他爬虫节点的工作效率,实现了对爬虫节点的有效管理。
[0052] S1022:若爬虫节点的负载信息小于预设的负载阈值,则继续按照优先级由高到低的顺序为爬虫节点分配待处理任务;或者,
[0053] 其中,负载阈值为预先设置的,具体的数值范围本领域技术人员可以根据具体的设计需求来进行设置,在此不再赘述;另外,当爬虫节点的负载信息小于负载阈值时,则可以说明该爬虫节点的待处理任务量还未达到该爬虫节点所对应的最大处理能力,此时,为了避免爬虫节点处理能力的浪费,还可以继续按照优先级顺序为该爬虫节点分配待处理任务。
[0054] S1023:若爬虫节点的负载信息大于或等于预设的负载阈值,则向其他爬虫节点按照优先级由高到低的顺序分配待处理任务;
[0055] 其中,所分配的待处理任务所需要的处理能力小于爬虫节点的处理能力。
[0056] 当爬虫节点的负载信息大于或者等于负载阈值时,则说明该爬虫节点上的待处理任务量已经达到该爬虫节点所对应的最大处理能力,因此,为了保证对待处理任务的处理效率,则向其他爬虫节点按照优先级顺序分配待处理任务,进而有效地实现了对爬虫节点任务的有效调度与管理,保证了该调度方法的实用性。
[0057] 图5为本发明又一实施例提供的一种分布式网络爬虫任务的调度方法的流程示意图;在上述实施例的基础上,继续参考附图5可知,进一步的,在按照预设的时间周期向每个爬虫节点发送心跳请求之后,将方法设置为还包括:
[0058] S301:在预设时间段内,若未收到爬虫节点发送的处理能力,则确定爬虫节点的未响应信息,其中,未响应信息包括:未响应时间信息和未响应次数信息;
[0059] 在向爬虫节点发送心跳请求之后,有可能由于爬虫节点的故障或者其他原因,使得爬虫节点无法返回处理能力信息,此时,为了实现对爬虫节点的管理;可以在预设的时间段内,判断爬虫节点的未响应信息,根据未响应信息来准确判断爬虫节点是否出现工作故障。
[0060] S302:若未响应次数信息大于预设的次数阈值信息,则按照预设的调整策略调整爬虫节点的处理能力。
[0061] 由于未响应信息包括未响应次数信息,因此,可以将未响应次数信息与次数阈值信息进行分析比较,若确认未响应次数信息大于次数阈值信息,则可以确认该爬虫节点工作出现故障,因此,可以按照预设的调整策略调整爬虫节点的处理能力,其中,对于具体的调整策略不做限定,本领域技术人员可以根据具体的设计需求进行设置,例如,可以将调整策略设置为按照预设的幅度减少或者降低爬虫节点的处理能力,或者,也可以直接将爬虫节点的处理能力调整为0等等,只要能够实现对该类爬虫节点进行管理调整即可,在此不再赘述。
[0062] 当然的,若未响应次数信息小于或者等于次数阈值信息,则说明该爬虫节点的工作状态未出现故障,可以对爬虫节点的工作状态做进一步观察,可以暂时不做调整处理,具体的,可以继续采集下一预设时间段的未响应信息,从而可以根据未响应信息准确判断爬虫节点的工作状态,从而提高了对爬虫节点管理的准确可靠性,进一步提高了该调度方法使用的稳定可靠性。
[0063] 图6为本发明再一实施例提供的一种分布式网络爬虫任务的调度方法的流程示意图;在上述实施例的基础上,继续参考附图6可知,进一步的,本实施例还可以将方法设置为还包括:
[0064] S401:在预设的时间段内,根据处理正确率和处理时间对爬虫节点进行管理;
[0065] 其中,时间段为预先设置的,本领域技术人员可以根据具体的设计需求对时间段的具体时间信息进行设置,例如,可以设置为单位时间、或者设置为3h、5h、6h或者其他时间等等;另外,处理正确率为爬虫节点对待处理任务进行正常处理的概率,处理时间为爬虫节点对待处理任务进行处理所需要时间信息,根据处理正常率和处理时间可以有效地判断爬虫节点的处理能力,方便对爬虫节点进行管理。
[0066] S402:若爬虫节点对第一数量的待处理任务进行处理的处理时间大于预设的时间阈值,则将该爬虫节点删除,其中,第一数量大于预设的第一数量阈值;和/或,[0067] 其中,时间阈值和第一数量阈值为预先设置的,时间阈值为爬虫节点对待处理任务进行处理所需要的最长处理时间,第一数量阈值为在预设时间段内,允许爬虫节点处理超时的待处理任务的最高数量;当处理时间大于时间阈值时,则说明该爬虫节点对待处理任务的处理时间已经不满足预设的标准,并且,在预设时间段内,处理超时的待处理任务数量已经多余预设的第一数量阈值,则该爬虫节点在预设时间段内,存在多个待处理任务的处理超时情况,即说明该爬虫节点工作异常或者出现故障,因此,为了保证爬虫节点对待处理任务进行处理的稳定可靠性,将该爬虫节点进行删除。
[0068] S403:若爬虫节点对第二数量的待处理任务进行处理的处理正确率小于预设的正确率阈值,则将该爬虫节点删除,其中,第二数量大于预设的第二数量阈值。
[0069] 其中,正确率阈值和第二数量阈值为预先设置的,正确率阈值为在预设时间段内,允许爬虫节点对多个待处理任务进行处理所允许的最低正确率;第二数量阈值为在预设时间段内,允许爬虫节点处理低于正确率阈值的待处理任务的最高数量;当处理正确率小于正确率阈值时,则说明该爬虫节点对待处理任务的处理正确率已经不满足预设的标准,并且,在预设时间段内,低于正确率阈值的待处理任务的数量已经超过预设的第二数量阈值,则该爬虫节点在预设时间段内,存在多个待处理任务的处理错误情况,即说明该爬虫节点工作异常或者出现故障,因此,为了保证爬虫节点对待处理任务进行处理的稳定可靠性,将该爬虫节点进行删除。
[0070] 当然的,在将该爬虫节点进行删除之后,可以经过预设的时间段之后,向该爬虫节点发送心跳请求,再次将该爬虫节点加入,并且获取该爬虫节点的处理能力,以判断该爬虫节点的工作状态,这样有效地实现了对爬虫节点的管理和维护,进一步提高了该调度方法的实用性。
[0071] 具体应用时,图8为本发明具体应用实施例提供的分布式网络爬虫架构的结构示意图,参考附图8可知,本实施例提供的调度方法的执行主体可以为调度端,具体的,可以将多个上层应用可分别发送爬取任务到调度端,调度端通过管理与控制,尽可能的保证任务尽快完成;同时调度端会统计一个时间段内(该时间段长度可配置)各应用的总任务量,来判断各应用的压力,分配给各应用相应的配额,当某应用发出的任务超过该配额,调度端可以暂时拒绝后续任务。
[0072] 调度可管理多个爬虫节点;在该结构中,爬虫节点的数量可根据任务量需求的扩展而逐步增加;多爬虫节点的结构,可保证在任务量很大的情况下,仍可正常运行;少爬虫节点的结构,可以避免爬虫节点的处理能力的浪费;并且还可以记录每个爬虫节点的运行能力、运行状态等信息。
[0073] 接收并缓存上游应用(包括:应用A、应用B和应用C等等)发来的获取任务,分发给合适的爬虫节点。记录并及时返回超时任务,待任务完成之后,将结果返回给上层。同时,估算系统的整体下载能力,限制单个应用的最大并发任务数,避免单个应用占用所有资源,导致其他应用没有资源。
[0074] 其中,需要注意的是,在上述的爬取任务的管理中,调度端动态评估所有爬虫节点的整体爬虫能力,控制每个应用的最大并发访问量,如果爬取任务量超过最大并发访问量,则拒绝接收上游应用发来的爬取任务,否则接收该任务。接收任务后,记录并缓存任务,若发现任务超时,则及时返回。
[0075] 具体的,系统整体爬虫能力的动态评估步骤如下:
[0076] 首先,根据各爬虫节点在心跳请求中汇报的处理能力,进行和计算,初步估计整体爬虫能力;
[0077] 其次,如果有爬虫节点加入或退出,或存在爬虫节点失联(连续n次没有收到心跳请求),则相应的加减该爬虫节点的处理能力;
[0078] 再次,如果调度端发现在爬虫节点返回的结果中,连续n个以上任务都是超时或者连接出错,则在整体评估中减去该爬虫节点的处理能力;等待一段时间再恢复,重新加上该爬虫节点的处理能力;
[0079] 最后,当有多个上层应用时,通过统计一段时间内各应用的任务请求总量,衡量当前各上层应用的任务压力,进而动态调整各应用在整体爬虫中可占用的资源配额;然后根据调度端对整体爬虫能力的估计,计算各应用的最大并发任务量。
[0080] 调度端接收任务后,按照预设的优先级调度策略,依次进行分发,要实现既不会超过各个爬虫节点的负载能力,又使每个节点的负载尽量均衡,且尽可能避免爬虫节点对某个站点访问过于频繁而造成封禁等现象;保证优先级高的任务会被优先执行,而同时又避免了低优先级的任务长期不被执行的状况;例如:当有同一个host,如sina网站,控制爬虫节点对sina网站的并发访问量不超过50次,避免造成DOS攻击,做到礼貌访问。
[0081] 在上述的任务的分发策略中,调度端在分发任务时主要考虑任务所需的爬虫环境,爬虫节点的负载均衡,host的并发限制等因素,其主要的分发步骤如下所示:
[0082] 首先,根据爬虫节点未被分配任务的时间长短,进行轮询,优先查询长时间未被分配任务的节点。
[0083] 其次,根据任务所需的下载环境(如所需的网络运营商等)和所需的解析版本等需求,选取满足需求的爬虫节点;
[0084] 再次,查看该爬虫节点的负载是否已经达到最大的负载能力,如果达到,则继续轮询;如果没达到,则继续;
[0085] 接着,判断该爬虫节点在同一个host下的任务量是否已超过最大host并发量,如果没超过,则选取该爬虫节点;如果超过,则继续轮询,直至找到满足上述条件的爬虫节点;
[0086] 最后,若找到该爬虫节点,则分配任务;若未找到该爬虫节点,将任务放入等待队列进行重试,重试n次后,仍未找到合适的爬虫节点,则返回结果,并提示没有找到合适的代理服务器proxy。
[0087] 调度端从爬虫节点回收爬取结果后,根据爬取结果中的错误码,决定是否重试该任务,当不需要重试,或者达到最大重试次数时,则将结果返回上层应用。
[0088] 本实施例提供的分布式网络爬虫任务的调度方法,可以实现对网络中的各爬虫节点进行管理,并根据任务的资源需求、任务优先级和各爬虫节点的爬取能力分发任务,使任务尽快完成并返回,且使各节点负载均衡,并尽可能避免封禁和host并发量过大等问题,做到礼貌访问,有效地提高了该调度方法的实用性,有利于市场的推广与应用。
[0089] 图7为本发明实施例提供的一种分布式网络爬虫任务的调度装置的结构示意图;参考附图7可知,本实施例提供了一种分布式网络爬虫任务的调度装置,包括:
[0090] 获取模块1,用于获取分布式网络中每个爬虫节点的处理能力;
[0091] 分配模块3,用于按照预设的优先级顺序并根据每个爬虫节点的处理能力为每个爬虫节点分配相应的待处理任务,以使得爬虫节点对所分配的待处理任务进行处理。
[0092] 本实施例对于获取模块1和分配模块3的具体形状结构不做限定,本领域技术人员可以根据具体的设计需求进行设置,只要能够实现上述操作步骤即可,在此不再赘述;另外,本实施例中获取模块1和分配模块3所实现操作步骤的具体实现过程和所能达到的技术效果与上述实施例中步骤S101-S102的具体实现过程和所能达到的技术效果相同,具体可参考上述陈述内容,在此不再赘述。
[0093] 本实施例提供的分布式网络爬虫任务的调度装置,通过分配模块3按照预设的优先级顺序并根据每个爬虫节点的处理能力为爬虫节点分配相应数量的待处理任务,实现了对爬虫节点的有效管理,并且保证了每个爬虫节点按照自身处理能力对所分配的待处理任务进行处理的效率,进而提高了该调度装置的实用性,有利于市场的推广与应用。
[0094] 在上述实施例的基础上,继续参考附图7可知,本实施例装置设置为还包括:
[0095] 确定模块2,用于根据每个爬虫节点的处理能力确定分布式网络的最大并发访问量;
[0096] 获取模块1,还用于:
[0097] 获取所述待处理任务,并根据所获取的待处理任务确定待处理任务量;
[0098] 若所获取的待处理任务量大于或者等于最大并发访问量,则停止获取待处理任务;或者,
[0099] 若所获取的待处理任务量小于最大并发访问量,则继续获取待处理任务。
[0100] 本实施例对于确定模块2的具体形状结构不做限定,本领域技术人员可以根据具体的设计需求进行设置,只要能够实现上述操作步骤即可,在此不再赘述;本实施例中确定模块2和获取模块1所实现操作步骤的具体实现过程和所能达到的技术效果与上述实施例中步骤S201-S204的具体实现过程和所能达到的技术效果相同,具体可参考上述陈述内容,在此不再赘述。
[0101] 通过获取模块1确定待处理任务量,然后将待处理任务量与最大并发访问量进行分析比较,可以有效地保证分布式网络对每个待处理任务进行处理的稳定可靠性,同时也避免了分布式网络的处理能力的浪费,进一步提高了该调度装置使用的稳定可靠性。
[0102] 在上述实施例的基础上,继续参考附图7可知,本实施例对于获取模块1获取每个爬虫节点的处理能力的具体实现过程不做限定,本领域技术人员可以根据具体的设计需求进行设置,较为优选的,将获取模块1设置为具体用于:
[0103] 按照预设的时间周期向每个爬虫节点发送心跳请求,以使得爬虫节点根据心跳请求发送爬虫节点的处理能力;
[0104] 接收爬虫节点发送的处理能力,其中,处理能力包括以下至少之一:下载能力、解析能力、负载信息、内存信息、未分配任务时间、处理正确率和处理时间。
[0105] 本实施例中获取模块1所实现操作步骤的具体实现过程和所能达到的技术效果与上述实施例中步骤S1011-S1012的具体实现过程和所能达到的技术效果相同,具体可参考上述陈述内容,在此不再赘述。
[0106] 在上述实施例的基础上,继续参考附图7可知,本实施例对于分配模块3按照优先级顺序并根据每个爬虫节点的处理能力为每个爬虫节点分配相应的待处理任务的具体实现过程不做限定,本领域技术人员可以根据具体的设计需求进行设置,其中,较为优选的,将分配模块设置为具体用于:
[0107] 若爬虫节点的未分配任务时间大于预设的时间阈值,则优先为该爬虫节点按照优先级由高到低的顺序分配待处理任务;或者,
[0108] 若爬虫节点的负载信息小于预设的负载阈值,则继续按照优先级由高到低的顺序为爬虫节点分配待处理任务;或者,
[0109] 若爬虫节点的负载信息大于或等于预设的负载阈值,则向其他爬虫节点按照优先级由高到低的顺序分配待处理任务;
[0110] 其中,所分配的待处理任务所需要的处理能力小于爬虫节点的处理能力。
[0111] 本实施例中分配模块3所实现操作步骤的具体实现过程和所能达到的技术效果与上述实施例中步骤S1021-S1023的具体实现过程和所能达到的技术效果相同,具体可参考上述陈述内容,在此不再赘述。
[0112] 在上述实施例的基础上,继续参考附图7可知,进一步的,确定模块2,还用于在按照预设的时间周期向每个爬虫节点发送心跳请求之后,在预设时间段内,若未收到爬虫节点发送的处理能力,则确定爬虫节点的未响应信息,其中,未响应信息包括:未响应时间信息和未响应次数信息;
[0113] 装置还包括:
[0114] 调整模块4,用于若未响应次数信息大于预设的次数阈值信息,则按照预设的调整策略调整爬虫节点的处理能力。
[0115] 本实施例对于调整模块4的具体形状结构不做限定,本领域技术人员可以根据具体的设计需求进行设置,只要能够实现上述操作步骤即可,在此不再赘述;另外,本实施例中确定模块2和调整模块4所实现操作步骤的具体实现过程和所能达到的技术效果与上述实施例中步骤S301-S302的具体实现过程和所能达到的技术效果相同,具体可参考上述陈述内容,在此不再赘述。
[0116] 在上述实施例的基础上,继续参考附图7可知,进一步的,本实施例将装置还包括:管理模块5,该管理模块5用于:
[0117] 在预设的时间段内,根据处理正确率和处理时间对爬虫节点进行管理;
[0118] 若爬虫节点对第一数量的待处理任务进行处理的处理时间大于预设的时间阈值,则将该爬虫节点删除,其中,第一数量大于预设的第一数量阈值;和/或,[0119] 若爬虫节点对第二数量的待处理任务进行处理的处理正确率小于预设的正确率阈值,则将该爬虫节点删除,其中,第二数量大于预设的第二数量阈值。
[0120] 本实施例对于管理模块5的具体形状结构不做限定,本领域技术人员可以根据具体的设计需求进行设置,只要能够实现上述操作步骤即可,在此不再赘述;另外,本实施例中管理模块5所实现操作步骤的具体实现过程和所能达到的技术效果与上述实施例中步骤S401-S403的具体实现过程和所能达到的技术效果相同,具体可参考上述陈述内容,在此不再赘述。
[0121] 在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0122] 作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0123] 另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
[0124] 上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
[0125] 本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0126] 最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈