首页 / 专利库 / 电信 / 节点 / 子节点 / 数据抓取方法、装置及电子设备

数据抓取方法、装置及电子设备

阅读:603发布:2020-05-08

专利汇可以提供数据抓取方法、装置及电子设备专利检索,专利查询,专利分析的服务。并且本 发明 实施例 提供了一种数据抓取方法、装置及 电子 设备,其中方法包括:接收数据抓取 请求 ,所述数据抓取请求中至少包括资源配置参数,根据所述资源配置参数和当前爬虫 节点 的资源配置属性,确定当前爬虫节点是否满足所述资源配置参数,如果满足,则执行数据抓取,如果不满足,则向所述当前爬虫节点的邻近爬虫节点广播所述数据抓取请求。本发明实施例基于点对点的方式构建的爬虫网络系统来执行网络数据抓取,避免了 服务器 集中式的调度和数据传输的单点 瓶颈 问题,能够充分共享网络带宽,同时能够避免数据获取任务被目标 网站 屏蔽的 风 险。,下面是数据抓取方法、装置及电子设备专利的具体信息内容。

1.一种数据抓取方法,包括:
接收数据抓取请求,所述数据抓取请求中至少包括数据抓取任务所需的资源配置参数;
根据所述资源配置参数和当前爬虫节点的资源配置属性,确定当前爬虫节点是否满足所述资源配置参数,如果满足,则执行数据抓取,如果不满足,则向所述当前爬虫节点的邻近爬虫节点广播所述数据抓取请求。
2.根据权利要求1所述的方法,其中,所述资源配置参数包括:网络带宽、存储空间、处理器性能、IP地址中的一项或者多项的组合。
3.根据权利要求1所述的方法,其中,在根据所述资源配置参数和当前爬虫节点的资源配置属性,确定当前爬虫节点是否满足所述资源配置参数之前,还包括:
判断所述当前爬虫节点的是否处于空闲状态,如果是,则执行根据所述资源配置参数和当前爬虫节点的资源配置属性,确定当前爬虫节点是否满足所述资源配置参数的处理,否则,向所述当前爬虫节点的邻近爬虫节点广播所述数据抓取请求。
4.根据权利要求1所述的方法,其中,所述数据抓取请求中还包括数据抓取量信息,在根据所述资源配置参数和当前爬虫节点的资源配置属性,确定当前爬虫节点是否满足所述资源配置参数之前,还包括:
根据当前爬虫节点的负载状态,确定是否能够处理与所述数据抓取量对应的抓取任务,如果能,则执行根据所述资源配置参数和当前爬虫节点的资源配置属性,确定当前爬虫节点是否满足所述资源配置参数的处理,否则,向所述当前爬虫节点的邻近爬虫节点广播所述数据抓取请求。
5.根据权利要求1所述的方法,其中,所述数据抓取请求中还包括用于记录该数据抓取请求的转发次数的字段,
所述向所述当前爬虫节点的邻近爬虫节点广播所述数据抓取请求包括:将所述字段中记录的转发次数加一后,向所述当前爬虫节点的邻近爬虫节点广播所述数据抓取请求,所述方法还包括:接收数据抓取请求后,读取所述字段中记录的被转发次数,如果所述转发次数大于预设阈值,则丢弃该接收数据抓取请求,否则,执行根据所述资源配置参数和当前爬虫节点的资源配置属性,确定当前爬虫节点是否满足所述资源配置参数的处理。
6.根据权利要求1所述的方法,其中,所述数据抓取请求中还至少包括数据抓取请求的源爬虫节点的地址信息,
所述执行数据抓取包括:
向所述源爬虫节点返回响应消息;
接收所述源爬虫节点发送的数据抓取任务消息,数据抓取任务消息中至少包括待抓取数据的地址信息;
根据所述抓取任务消息执行数据抓取任务,并将抓取到的数据发送至所述源爬虫节点。
7.根据权利要求1所述的方法,其中,还包括:
种子服务器获取种子爬虫节点的地址信息;
通过所述种子爬虫节点获取与当前爬虫节点的邻近爬虫节点的地址信息,并与所述邻近的爬虫节点建立路由关系。
8.根据权利要求7所述的方法,其中,通过所述种子爬虫节点获取与当前爬虫节点邻近的爬虫节点的地址信息,并与所述邻近的爬虫节点建立路由关系包括:
以种子爬虫节点作为起始的爬虫节点,利用各个爬虫节点中存储的邻近爬虫节点的地址信息,当前爬虫节点不断地获取爬虫网络系统中的各个爬虫节点的地址信息;
计算当前爬虫节点与获取到地址信息的各个爬虫节点之间的网络距离;
选择网络距离小于预设距离阈值的爬虫节点和/或满足预设数量要求的爬虫节点,作为当前爬虫节点的邻近爬虫网络节点,并在当前爬虫节点中存储该邻近爬虫网络节点的地址信息,从而与邻近爬虫网络节点建立路由关系。
9.一种数据抓取装置,包括:
数据抓取请求接收模,用于接收数据抓取请求,所述数据抓取请求中至少包括资源配置参数;
数据抓取请求判定模块,用于根据所述资源配置参数和当前爬虫节点的资源配置属性,确定当前爬虫节点是否满足所述资源配置参数的要求;
数据抓取模块,用于在前爬虫节点的资源配置属性满足所述资源配置参数的要求的情况下,执行数据抓取;
数据抓取请求广播模块,用于在前爬虫节点的资源配置属性不满足所述资源配置参数的要求的情况下,向所述当前爬虫节点的邻近爬虫节点广播所述数据抓取请求。
10.根据权利要求9所述的装置,其中,所述数据抓取请求中还至少包括数据抓取请求的源爬虫节点的地址信息,
所述执行数据抓取包括:
向所述源爬虫节点返回响应消息;
接收所述源爬虫节点发送的数据抓取任务消息,数据抓取任务消息中至少包括待抓取数据的地址信息;
根据所述抓取任务消息执行数据抓取任务,并将抓取到的数据发送至所述源爬虫节点。
11.根据权利要求9所述的装置,其中,还包括:
路由关系建立模块,用于从种子服务器获取种子爬虫节点的地址信息,通过所述种子爬虫节点获取与当前爬虫节点的邻近爬虫节点的地址信息,并与所述邻近的爬虫节点建立路由关系。
12.根据权利要求11所述的装置,其中,通过所述种子爬虫节点获取与当前爬虫节点邻近的爬虫节点的地址信息,并与所述邻近的爬虫节点建立路由关系包括:
从种子爬虫节点为起始的爬虫节点,利用爬虫节点中存储的邻近爬虫节点的路由信息,当前爬虫节点不断地获取爬虫网络系统中的其他爬虫节点的路由信息;
计算与当前爬虫节点已经建立路由关系的其他爬虫节点之间的网络距离;
选择网络距离小于预设距离阈值的其他爬虫节点和/或满足预设数量要求的其他爬虫节点,作为当前爬虫节点的邻近爬虫网络节点,并在当前爬虫节点中存储该邻近爬虫网络节点的路由信息,从而与邻近爬虫网络节点建立路由关系。
13.一种电子设备,包括:
存储器,用于存储程序;
处理器,耦合至所述存储器,用于执行所述程序,以用于如下处理:
接收数据抓取请求,所述数据抓取请求中至少包括资源配置参数;
根据所述资源配置参数和当前爬虫节点的资源配置属性,确定当前爬虫节点是否满足所述资源配置参数,如果满足,则执行数据抓取,如果不满足,则向所述当前爬虫节点的邻近爬虫节点广播所述数据抓取请求。

说明书全文

数据抓取方法、装置及电子设备

技术领域

[0001] 本申请涉及一种数据抓取方法、装置及电子设备,属于计算机技术领域。

背景技术

[0002] 网络爬虫是目前获取网站数据的重要方式,对数据分析、信息搜索等方面有重要作用。目前业界一般采用多机器部署的分布式网络爬虫架构,在这样的架构下需要通过中心化的节点进行统一调度,系统实现的成本非常高,而且一旦资源调度系统出现问题,会导致整个网络爬虫系统瘫痪。发明内容
[0003] 本发明实施例提供一种数据抓取方法、装置及电子设备,避免了服务器集中式的调度和数据传输的单点瓶颈问题,及数据获取任务被目标网站屏蔽的险。
[0004] 为了实现上述目的,本发明实施例提供了一种数据抓取方法,包括:
[0005] 接收数据抓取请求,所述数据抓取请求中至少包括资源配置参数;
[0006] 根据所述资源配置参数和当前爬虫节点的资源配置属性,确定当前爬虫节点是否满足所述资源配置参数,如果满足,则执行数据抓取,如果不满足,则向所述当前爬虫节点的邻近爬虫节点广播所述数据抓取请求。
[0007] 本发明实施例还提供了一种数据抓取装置,包括:
[0008] 数据抓取请求接收模,用于接收数据抓取请求,所述数据抓取请求中至少包括资源配置参数;
[0009] 数据抓取模块,用于根据所述资源配置参数和当前爬虫节点的资源配置属性,确定当前爬虫节点是否满足所述资源配置参数,在满足的情况下,执行数据抓取;
[0010] 数据抓取请求广播模块,用于根据所述资源配置参数和当前爬虫节点的资源配置属性,确定当前爬虫节点是否满足所述资源配置参数,在不满足的情况下,向所述当前爬虫节点的邻近爬虫节点广播所述数据抓取请求。
[0011] 本发明实施例还提供了一种电子设备,包括:
[0012] 存储器,用于存储程序;
[0013] 处理器,耦合至所述存储器,用于执行所述程序,以用于如下处理:
[0014] 接收数据抓取请求,所述数据抓取请求中至少包括资源配置参数;
[0015] 根据所述资源配置参数和当前爬虫节点的资源配置属性,确定当前爬虫节点是否满足所述资源配置参数,如果满足,则执行数据抓取,如果不满足,则向所述当前爬虫节点的邻近爬虫节点广播所述数据抓取请求。
[0016] 本发明实施例的数据抓取方法、装置及电子设备基于点对点的方式构建的爬虫网络系统来执行网络数据抓取,避免了服务器集中式的调度和数据传输的单点瓶颈问题,能够充分共享网络带宽,同时能够避免数据获取任务被目标网站屏蔽的风险。
[0017] 上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。附图说明
[0018] 图1为本发明实施例的数据抓取方法的流程示意图;
[0019] 图2为本发明实施例的数据抓取方法的应用场景示意图;
[0020] 图3为本发明实施例的数据抓取装置的结构示意图之一;
[0021] 图4为本发明实施例的数据抓取装置的结构示意图之二;
[0022] 图5为本发明实施例的电子设备的结构示意图。

具体实施方式

[0023] 下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0024] 网络爬虫是目前获取网站数据的重要方式,对数据分析、信息搜索等方面有重要作用。本发明实施例的数据抓取方法、装置及电子设备基于点对点的方式构建的爬虫网络系统来执行网络数据抓取,整个爬虫网络系统不需要任务调度,各个爬虫节点独立运行自身的工作流程,通过P2P(peer-to-peer,点对点)网络的机制,相互配合实现网页数据的抓取。避免了服务器集中式的调度和数据传输的单点瓶颈问题,能够充分共享网络带宽,同时能够避免数据获取任务被目标网站屏蔽的风险。
[0025] 下面通过一些具体实施例来进一步说明本发明的技术方案。
[0026] 实施例一
[0027] 如图1所示,其为本发明实施例的数据抓取方法的流程示意图,该方法基于多个爬虫节点以点对点的方式形成爬虫网络系统,该方法的处理流程可以运行在爬虫网络系统中的各个爬虫节点上执行,从而使得整个爬虫网络系统能够进行合理的数据抓取请求的散播以及数据抓取任务的协调分配。该方法包括如下步骤:
[0028] S101:接收数据抓取请求,数据抓取请求中至少包括资源配置参数。资源配置参数是用户根据数据抓取需求而配置出的具体参数,其可以包括带宽、存储空间、处理器性能等资源配置信息,也可以包括数据抓取任务的处理时间等要求。
[0029] 具体地,如图2所示,其为本发明实施例的数据抓取方法的应用场景示意图,图中多个爬虫节点以点对点的方式形成爬虫网络系统,用户可以在客户端上配置好资源配置参数,例如,带宽、存储空间、处理器性能、IP地址等,并生成包含资源配置参数的数据抓取请求,然后发送至爬虫网络系统中的任意一个爬虫节点,其中,该爬虫节点作为源爬虫节点,将该数据抓取请求向爬虫网络系统进行散播。在下面的说明中将具体介绍通过该爬虫节点将数据抓取请求向爬虫网络系统中进行散播的具体处理机制。在步骤S101中,对于任意一个爬虫节点来说,接收到的数据抓取请求可能来自于上述客户端,也可能来自于其他爬虫节点的转发。
[0030] S102:根据资源配置参数和当前爬虫节点的资源配置属性,确定当前爬虫节点是否满足资源配置参数,如果满足资源配置参数的要求,则执行步骤S103,如果不满足资源配置参数的要求,则执行步骤S104。具体地,爬虫节点的资源配置属性中可以包括爬虫节点的资源配置信息,例如,网络带宽、存储空间、处理器性能、IP地址等,通过将当前爬虫节点的资源配置属性和资源配置参数进行比较,确定当前爬虫节点是否满足资源配置参数。
[0031] 此外,在步骤S102之前,还可以包括:判断所述当前爬虫节点的是否处于空闲状态,如果当前节点处于空闲状态,再执行步骤S102的处理,如果没有处于空闲状态,则说明无论是否符合资源配置参数的要求,都无法执行数据抓取,因此,可以执行步骤S104。
[0032] 进一步地,数据抓取请求中还可以包括数据抓取量信息,在步骤S102之前,还可以包括:根据当前爬虫节点的负载状态,确定是否能够处理与所述数据抓取量对应的抓取任务,在一些比较大的爬虫节点上,可以通过负载均衡调度的方式执行多个抓取任务,这些爬虫节点可以根据数据抓取请求中的数据抓取量信息结合自身负载状态进行判断,如果能处理对应的数据抓取任务,再执行步骤S102的处理,否则,执行步骤S104。
[0033] S103:执行数据抓取。在该步骤S103中,执行数据抓取具体处理可以有多种方式。数据抓取请求中可以携带有生成数据抓取请求的客户端的地址信息,在这种情况下,满足要求的爬虫节点可以直接与客户端建立通信连接,获取具体的数据抓取任务的相关内容,然后执行数据抓取任务,并向客户端返回抓取到的数据。另外,满足要求的爬虫节点也可以通过与客户端最早建立联系的源爬虫节点建立通信连接,来执行与数据抓取相关的信息交互,在这种情况下,数据抓取请求中可以携带有源爬虫节点的地址信息。在很多情况下,各个爬虫节点与客户端设置于同一台设备上,例如,许多爬虫节点以程序模块或者虚拟机的方式运行在个人电脑或者移动终端或者企业的服务器上,在这种情况下,源爬虫节点与客户端的地址信息是指向同一设备。
[0034] 具体地,以通过源爬虫节点来进行数据抓取的信息交互为例,介绍一下数据抓取的具体处理过程。数据抓取请求中携带有数据抓取请求的源爬虫节点的地址信息,满足资源配置参数的爬虫节点在接收到数据抓取请求后,向源爬虫节点返回响应消息。从而直接建立与源爬虫节点之间的连接,而无需经过其他路由节点。
[0035] 之后,源爬虫节点会发送数据抓取任务消息,其中可以包含具体的网站地址以及任务配置信息,这里的任务配置信息可以包括:数据存储格式、数据抓取时间等。接收到源爬虫节点发送的数据抓取任务消息的爬虫节点,根据数据抓取任务消息执行数据抓取,而后将抓取到的数据直接发送给源爬虫节点。源爬虫节点与客户端已经建立了通信连接,源爬虫节点可以将抓取到的数据提供给客户端。
[0036] S104:向当前爬虫节点的邻近爬虫节点广播数据抓取请求。
[0037] 如果当前爬虫节点不满足资源配置参数,那么,可以通过当前爬虫节点向邻近的爬虫节点广播该数据抓取请求,邻近的爬虫节点也将重复上述过程,直到找到满足要求的爬虫节点或者完成预设的转发次数的阈值
[0038] 具体地,在数据抓取请求中可以包括用于记录该数据抓取请求的转发次数的字段,在上述步骤S104中,将所述字段中记录的转发次数加一后,再向所述当前爬虫节点的邻近爬虫节点广播所述数据抓取请求。
[0039] 相对应,在步骤S101中,在爬虫节点接收到一个数据抓取请求后,可以对该数据抓取请求中的上述字段进行读取,对转发次数进行判断,如果所述转发次数大于预设阈值,则丢弃该接收数据抓取请求,否则,执行步骤S102。
[0040] 通过向邻近节点广播数据抓取请求,能够将该数据抓取请求快速地向网络爬虫系统进行扩散,从而能够快速找到满足要求的爬虫节点。
[0041] 由此可见,整个爬虫网络系统不需要任务调度,各个爬虫节点独立运行自身的工作流程,相互配合实现网页数据的抓取。
[0042] 以上描述的各个爬虫节点针对数据抓取事项的基本处理逻辑。下面介绍一下,新的爬虫节点加入该爬虫网络系统的处理过程。
[0043] 当有新的爬虫节点加入爬虫网络系统时,新的爬虫节点可以从种子服务器获取种子爬虫节点的地址信息,为表述方便,将此新的爬虫节点称作当前爬虫节点,其通过种子爬虫节点获取与当前爬虫节点的邻近爬虫节点的地址信息,并与邻近的爬虫节点建立路由关系。在本发明实施例中,爬虫节点中可以设置有路由信息表,该路由信息表主要用于前述的数据抓取请求的散播,本发明实施例中爬虫节点的之间建立路由关系是指,在一个爬虫节点的路由信息表中,记录了另一个爬虫节点的地址信息,从而在接收到数据抓取请求时,如果自身不满足要求,会根据路由信息表的记录向其他爬虫节点广播。
[0044] 具体地,上述的新的爬虫节点与爬虫网络系统中的爬虫节点建立路由关系的具体处理过程可以为:
[0045] 从种子爬虫节点为起始的爬虫节点,利用爬虫节点中存储的邻近爬虫节点的地址信息,当前爬虫节点不断地获取爬虫网络系统中的其他爬虫节点的地址信息。图2中所示,种子服务器中记录有多个种子爬虫节点的地址信息,种子爬虫节点是在整个爬虫网络系统中,稳定性较高的爬虫节点,从而可以为新的爬虫节点提供稳定接入爬虫网络系统的入口,种子爬虫节点作为爬虫网络系统中的成员,也同样执行前述的处理逻辑。
[0046] 例如,以爬虫节点1作为种子爬虫节点,当前爬虫节点通过爬虫节点1可以获取爬虫节点2、3、4的地址信息,并通过爬虫节点2、4可以获取爬虫节点5、8的地址信息,同样的道理,可以不断获取爬虫网络系统中更多爬虫节点的地址信息。
[0047] 然后,可以计算当前爬虫节点与获取到地址信息的各个爬虫节点之间的网络距离,例如,可以计算拓扑关系路径上的距离或者是通过爬虫节点之间的响应时间来计算各个爬虫节点之间的网络距离,再根据网络距离的大小进行筛选,选择网络距离小于预设距离阈值的爬虫节点和/或满足预设数量要求的爬虫节点,作为当前爬虫节点的邻近爬虫网络节点,并在当前爬虫节点中存储该邻近爬虫网络节点的地址信息,从而与邻近爬虫网络节点建立路由关系。
[0048] 需要说明的是:上述对网络距离进行筛选,并选择网络距离小于预设距离阈值的爬虫节点的目的在于能够快速地对数据抓取请求进行散播以找到符合要求的爬虫节点,并且在执行数据抓取任务时,能够以较快的速度将抓取到的数据返回给源爬虫节点。
[0049] 本发明实施例的数据抓取方法,基于点对点的方式构建的爬虫网络系统来执行网络数据抓取,避免了服务器集中式的调度和数据传输的单点瓶颈问题,能够充分共享网络带宽,同时能够避免数据取任务被目标网站屏蔽的风险。
[0050] 实施例二
[0051] 如图3所示,其为本发明实施例的数据抓取装置的结构示意图之一,该装置包括:数据抓取请求接收模块21,数据抓取请求判定模块22,数据抓取模块23,数据抓取请求广播模块24。
[0052] 数据抓取请求接收模块21,用于接收数据抓取请求,数据抓取请求中至少包括资源配置参数。
[0053] 数据抓取请求判定模块22,用于根据资源配置参数和当前爬虫节点的资源配置属性,确定当前爬虫节点是否满足资源配置参数的要求。
[0054] 具体地,爬虫节点的资源配置属性中可以包括爬虫节点的资源配置信,例如,网络带宽、存储空间、处理器性能、IP地址等。通过将当前爬虫节点的资源配置属性和资源配置参数进行比较,确定当前爬虫节点是否满足资源配置参数。
[0055] 此外,数据抓取请求判定模块22在执行针对资源配置参数的判断之前,还可以包括:判断所述当前爬虫节点的是否处于空闲状态,如果当前节点处于空闲状态,如果当前节点处于空闲状态,再执行后续的判断处理,如果没有处于空闲状态,则说明无论是否符合资源配置参数的要求,都无法执行数据抓取,因此,可以触发数据抓取请求广播模块24向邻近爬虫节点广播数据抓取请求。
[0056] 进一步地,数据抓取请求中还可以包括数据抓取量信息,数据抓取请求判定模块22在执行针对资源配置参数的判断之前,还可以包括:根据当前爬虫节点的负载状态,确定是否能够处理与所述数据抓取量对应的抓取任务,在一些比较大的爬虫节点上,可以通过负载均衡调度的方式执行多个抓取任务,这些爬虫节点可以根据数据抓取请求中的数据抓取量信息结合自身负载状态进行判断,如果能处理对应的数据抓取任务,再执行后续的判断处理,否则,触发数据抓取请求广播模块24向邻近爬虫节点广播数据抓取请求。
[0057] 数据抓取模块23,用于在前爬虫节点的资源配置属性满足资源配置参数的要求的情况下,执行数据抓取。
[0058] 执行数据抓取具体处理可以有多种方式。数据抓取请求中可以携带有生成数据抓取请求的客户端的地址信息,在这种情况下,满足要求的爬虫节点可以直接与客户端建立通信连接,获取具体的数据抓取任务的相关内容,然后执行数据抓取任务,并向客户端返回抓取到的数据。另外,满足要求的爬虫节点也可以通过与客户端最早建立联系的源爬虫节点建立通信连接,来执行与数据抓取相关的信息交互,在这种情况下,数据抓取请求中可以携带有源爬虫节点的地址信息。在很多情况下,各个爬虫节点与客户端设置于同一台设备上,例如,许多爬虫节点以程序模块或者虚拟机的方式运行在个人电脑或者移动终端或者企业的服务器上,在这种情况下,源爬虫节点与客户端的地址信息是指向同一设备。
[0059] 具体地,以通过源爬虫节点来进行数据抓取的信息交互为例,介绍一下数据抓取的具体处理过程。数据抓取请求中携带有数据抓取请求的源爬虫节点的地址信息,满足资源配置参数的爬虫节点在接收到数据抓取请求后,向源爬虫节点返回响应消息。从而直接建立与源爬虫节点之间的连接,而无需经过其他路由节点。
[0060] 之后,源爬虫节点会发送数据抓取任务消息,其中可以包含具体的网站地址以及任务配置信息,这里的任务配置信息可以包括:数据存储格式、数据抓取时间等。接收到源爬虫节点发送的数据抓取任务消息的爬虫节点,根据数据抓取任务消息执行数据抓取,而后将抓取到的数据直接发送给源爬虫节点。源爬虫节点与客户端已经建立了通信连接,源爬虫节点可以将抓取到的数据提供给客户端。
[0061] 数据抓取请求广播模块24,用于在前爬虫节点的资源配置属性不满足资源配置参数的要求的情况下,向当前爬虫节点的邻近爬虫节点广播数据抓取请求。
[0062] 如果当前爬虫节点不满足资源配置参数,那么,可以通过当前爬虫节点向邻近的爬虫节点广播该数据抓取请求,邻近的爬虫节点也将重复上述过程,直到找到满足要求的爬虫节点或者完成预设的转发次数的阈值。
[0063] 具体地,在数据抓取请求中可以包括用于记录该数据抓取请求的转发次数的字段,数据抓取请求广播模块24可以将所述字段中记录的转发次数加一后,再向所述当前爬虫节点的邻近爬虫节点广播所述数据抓取请求。
[0064] 相对应,在数据抓取请求接收模块21中,在爬虫节点接收到一个数据抓取请求后,可以对该数据抓取请求中的上述字段进行读取,对转发次数进行判断,如果所述转发次数大于预设阈值,则丢弃该接收数据抓取请求,否则,数据抓取请求广播模块24向邻近爬虫节点广播数据抓取请求。
[0065] 通过向邻近节点广播数据抓取请求,能够将该数据抓取请求快速地向网络爬虫系统进行扩散,从而能够快速找到满足要求的爬虫节点。
[0066] 以上描述的各个爬虫节点针对数据抓取事项的基本处理逻辑。在此基础上,如图4所示,其为本发明实施例的数据抓取装置的结构示意图之二,在上述数据抓取装置的基础上还可以包括:
[0067] 路由关系建立模块20,用于从种子服务器获取种子爬虫节点的地址信息,通过种子爬虫节点获取与当前爬虫节点的邻近爬虫节点的地址信息,并与邻近的爬虫节点建立路由关系。
[0068] 当有新的爬虫节点加入爬虫网络系统时,新的爬虫节点可以从种子服务器获取种子爬虫节点的地址信息,为表述方便,将此新的爬虫节点称作当前爬虫节点,其通过种子爬虫节点获取与当前爬虫节点的邻近爬虫节点的地址信息,并与邻近的爬虫节点建立路由关系。在本发明实施例中,爬虫节点中可以设置有路由信息表,该路由信息表主要用于前述的数据抓取请求的散播,本发明实施例中爬虫节点的之间建立路由关系是指,在一个爬虫节点的路由信息表中,记录了另一个爬虫节点的地址信息,从而在接收到数据抓取请求时,如果自身不满足要求,会根据路由信息表的记录向其他爬虫节点广播。
[0069] 具体地,上述的新的爬虫节点与爬虫网络系统中的爬虫节点建立路由关系的具体处理过程可以为:
[0070] 从种子爬虫节点为起始的爬虫节点,利用爬虫节点中存储的邻近爬虫节点的地址信息,当前爬虫节点不断地获取爬虫网络系统中的其他爬虫节点的地址信息。
[0071] 然后,可以计算当前爬虫节点与获取到地址信息的各个爬虫节点之间的网络距离,例如,可以计算拓扑关系路径上的距离或者是通过爬虫节点之间的响应时间来计算各个爬虫节点之间的网络距离,再根据网络距离的大小进行筛选,选择网络距离小于预设距离阈值的爬虫节点和/或满足预设数量要求的爬虫节点,作为当前爬虫节点的邻近爬虫网络节点,并在当前爬虫节点中存储该邻近爬虫网络节点的地址信息,从而与邻近爬虫网络节点建立路由关系。
[0072] 需要说明的是:上述对网络距离进行筛选,并选择网络距离小于预设距离阈值的爬虫节点的目的在于能够快速地对数据抓取请求进行散播以找到符合要求的爬虫节点,并且在在执行数据抓取任务时,能够以较快的速度将抓取到的数据返回给源爬虫节点。
[0073] 本发明实施例的数据抓取装置基于点对点的方式构建的爬虫网络系统来执行网络数据抓取,避免了服务器集中式的调度和数据传输的单点瓶颈问题,能够充分共享网络带宽,同时能够避免数据取任务被目标网站屏蔽的风险。
[0074] 实施例三
[0075] 前面实施例描述了本发明实施例的流程处理及装置结构,上述的方法和装置的功能可借助一种电子设备实现完成,如图5所示,其为本发明实施例的电子设备的结构示意图,具体包括:存储器110和处理器120。
[0076] 存储器110,用于存储程序。
[0077] 除上述程序之外,存储器110还可被配置为存储其它各种数据以支持在电子设备上的操作。这些数据的示例包括用于在电子设备上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。
[0078] 存储器110可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
[0079] 处理器120,耦合至存储器110,用于执行存储器110中的程序,以用于执行如下处理:
[0080] 接收数据抓取请求,数据抓取请求中至少包括资源配置参数;
[0081] 根据资源配置参数和当前爬虫节点的资源配置属性,确定当前爬虫节点是否满足资源配置参数,如果满足,则执行数据抓取,如果不满足,则向当前爬虫节点的邻近爬虫节点广播数据抓取请求。
[0082] 其中,所述资源配置参数可以包括:网络带宽、存储空间、处理器性能、IP地址中的一项或者多项的组合。
[0083] 其中,在根据所述资源配置参数和当前爬虫节点的资源配置属性,确定当前爬虫节点是否满足所述资源配置参数之前,还可以包括:
[0084] 判断所述当前爬虫节点的是否处于空闲状态,如果是,则执行根据所述资源配置参数和当前爬虫节点的资源配置属性,确定当前爬虫节点是否满足所述资源配置参数的处理,否则,向所述当前爬虫节点的邻近爬虫节点广播所述数据抓取请求。
[0085] 其中,所述数据抓取请求中还可以包括数据抓取量信息,
[0086] 在根据所述资源配置参数和当前爬虫节点的资源配置属性,确定当前爬虫节点是否满足所述资源配置参数之前,还可以包括:
[0087] 根据当前爬虫节点的负载状态,确定是否能够处理与所述数据抓取量对应的抓取任务,如果能,则执行根据所述资源配置参数和当前爬虫节点的资源配置属性,确定当前爬虫节点是否满足所述资源配置参数的处理,否则,向所述当前爬虫节点的邻近爬虫节点广播所述数据抓取请求。
[0088] 其中,所述数据抓取请求中还可以包括用于记录该数据抓取请求的转发次数的字段,
[0089] 所述向所述当前爬虫节点的邻近爬虫节点广播所述数据抓取请求可以包括:将所述字段中记录的转发次数加一后,向所述当前爬虫节点的邻近爬虫节点广播所述数据抓取请求,
[0090] 上述处理还可以包括:接收数据抓取请求后,读取所述字段中记录的被转发次数,如果所述转发次数大于预设阈值,则丢弃该接收数据抓取请求,否则,执行根据所述资源配置参数和当前爬虫节点的资源配置属性,确定当前爬虫节点是否满足所述资源配置参数的处理。
[0091] 其中,数据抓取请求中还至少包括数据抓取请求的源爬虫节点的地址信息,相应地,执行数据抓取可以包括:
[0092] 向源爬虫节点返回响应消息;
[0093] 接收源爬虫节点发送的数据抓取任务消息,数据抓取任务消息中至少包括待抓取数据的地址信息;
[0094] 根据抓取任务消息执行数据抓取任务,并将抓取到的数据发送至源爬虫节点。
[0095] 其中,上述处理还可以包括:
[0096] 从种子服务器获取种子爬虫节点的地址信息,通过种子爬虫节点获取与当前爬虫节点的邻近爬虫节点的地址信息,并与邻近的爬虫节点建立路由关系。
[0097] 其中,通过种子爬虫节点获取与当前爬虫节点邻近的爬虫节点的地址信息,并与邻近的爬虫节点建立路由关系可以包括:
[0098] 以种子爬虫节点作为起始的爬虫节点,利用各个爬虫节点中存储的邻近爬虫节点的地址信息,当前爬虫节点不断地获取爬虫网络系统中的各个爬虫节点的地址信息;
[0099] 计算当前爬虫节点与获取到地址信息的各个爬虫节点之间的网络距离;
[0100] 选择网络距离小于预设距离阈值的爬虫节点和/或满足预设数量要求的爬虫节点,作为当前爬虫节点的邻近爬虫网络节点,并在当前爬虫节点中存储该邻近爬虫网络节点的地址信息,从而与邻近爬虫网络节点建立路由关系。
[0101] 上述对于上述处理过程具体说明、技术原理详细说明以及技术效果详细分析在前面实施例中进行了详细描述,在此不再赘述。
[0102] 进一步,如图所示,电子设备还可以包括:通信组件130、电源组件140、音频组件150、显示器160等其它组件。图中仅示意性给出部分组件,并不意味着电子设备只包括图中所示组件。
[0103] 通信组件130被配置为便于电子设备和其他设备之间有线或无线方式的通信。电子设备可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件130经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,通信组件130还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
[0104] 电源组件140,为电子设备的各种组件提供电。电源组件140可以包括电源管理系统,一个或多个电源,及其他与为电子设备生成、管理和分配电力相关联的组件。
[0105] 音频组件150被配置为输出和/或输入音频信号。例如,音频组件150包括一个麦克风(MIC),当电子设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器110或经由通信组件130发送。在一些实施例中,音频组件150还包括一个扬声器,用于输出音频信号。
[0106] 显示器160包括屏幕,其屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与触摸或滑动操作相关的持续时间和压力。
[0107] 本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
[0108] 最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
高效检索全球专利

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

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

申请试用

分析报告

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

申请试用

QQ群二维码
意见反馈