一种数据采集的方法及其相关设备与流程

文档序号:12199028阅读:407来源:国知局
一种数据采集的方法及其相关设备与流程

本发明涉及互联网搜索引擎技术领域,尤其涉及一种数据采集的方法及其相关设备。



背景技术:

网络爬虫,用于自动采集互联网上的网页数据,并将数据存储在存储介质上。在海量数据采集的场景下,需要采集的目标网站数量众多,需要采集的网页数据量巨大,同时要求采集的效率要求极高,普通的单机爬虫由于硬件资源有限,无法满足需求,必须采用分布式爬虫技术。

传统的分布式爬虫技术,如Apache Nutch等,现有的解决方案是搭建一个主从模式的主机集群,主节点即控制节点负责任务调度和集群管理,从节点即爬虫节点使用多线程调度的方式并发爬虫程序,从而实现整个分布式爬虫系统的高并发数据采集。

传统的分布式爬虫技术,在爬虫节点上使用多线程调度的方式并发运行爬虫程序,多线程爬虫线程的隔离性较差,开发者需要谨慎处理好爬虫线程复杂的同步问题,否则容易造成线程死锁或阻塞,同时,操作系统不能为每个线程独立分配CPU、内存等计算资源,若某个线程出现内存溢出等问题,可能导致主机系统完全崩溃,影响整体系统的稳定性。



技术实现要素:

本发明实施例提供了一种数据采集的方法及其相关设备,用于提高整体系统的稳定性。

本发明实施例一方面提供了一种数据采集的方法,具体包括:

方法应用于分布式爬虫系统,分布式爬虫系统包括控制节点和多个爬虫节点,其中,每个爬虫节点中都创建有多个爬虫容器,方法包括:

控制节点根据数据采集目标确定数据采集任务;

控制节点将数据采集任务调度到目标爬虫容器,以使目标爬虫容器根据数据采集任务,采集对应的数据,并存储采集到的数据,目标爬虫容器为多个爬虫容器中的一个。

本发明实施例令一方面提供了一种数据采集的方法,具体包括:

方法应用于分布式爬虫系统,分布式爬虫系统包括控制节点和多个爬虫节点,其中,每个爬虫节点中都创建有多个爬虫容器,方法包括:

爬虫节点中的爬虫容器从控制节点接收数据采集任务;

爬虫节点中的爬虫容器根据数据采集任务,采集对应的数据;

爬虫节点中的爬虫容器存储采集到的数据。

本发明实施例另一方面提供了一种控制节点,具体包括:

控制节点应用于分布式爬虫系统,分布式爬虫系统还包括多个爬虫节点,其中,每个爬虫节点中都创建有多个爬虫容器,控制节点包括:

确定单元,用于根据数据采集目标确定数据采集任务;

调度单元,用于将确定单元确定的数据采集任务调度到目标爬虫容器,以使目标爬虫容器根据数据采集任务,采集对应的数据,并存储采集到的数据,目标爬虫容器为多个爬虫容器中的一个。

本发明实施例另一方面提供了一种爬虫节点,具体包括:

爬虫节点应用于分布式爬虫系统,分布式爬虫系统包括控制节点和多个爬虫节点,其中,每个爬虫节点中都创建有多个爬虫容器,爬虫节点中包括:

第一接收单元,用于通过爬虫节点中的爬虫容器从控制节点接收数据采集任务;

采集单元,用于通过爬虫节点中的爬虫容器根据接收单元接收到的数据采集任务,采集对应的数据;

存储单元,用于通过爬虫节点中的爬虫容器存储采集单元采集到的数据。

本发明实施例另一方面提供了一种控制节点,具体包括:

控制节点应用于分布式爬虫系统,分布式爬虫系统还包括多个爬虫节点,其中,每个爬虫节点中都创建有多个爬虫容器,控制节点包括:

输入装置、输出装置、处理器和存储器;

处理器通过调用存储器存储的操作指令,用于执行如下步骤:

控制节点根据数据采集目标确定数据采集任务;

控制节点将数据采集任务调度到目标爬虫容器,以使目标爬虫容器根据数据采集任务,采集对应的数据,并存储采集到的数据,目标爬虫容器为多个爬虫容器中的一个。

本发明实施例另一方面提供了一种爬虫节点,具体包括:

爬虫节点应用于分布式爬虫系统,分布式爬虫系统包括控制节点和多个爬虫节点,其中,每个爬虫节点中都创建有多个爬虫容器,爬虫节点中包括:

输入装置、输出装置、处理器和存储器;

处理器通过调用存储器存储的操作指令,用于执行如下步骤:

爬虫节点中的爬虫容器从控制节点接收数据采集任务;

爬虫节点中的爬虫容器根据数据采集任务,采集对应的数据;

爬虫节点中的爬虫容器存储采集到的数据。

从以上技术方案可以看出,本发明实施例具有以下优点:

本发明实施例中,控制节点根据数据采集目标确定数据采集任务;控制节点将数据采集任务调度到目标爬虫容器,以使目标爬虫容器根据数据采集任务,采集对应的数据,并存储采集到的数据,目标爬虫容器为多个爬虫容器中的一个。由于本发明实施例采用爬虫容器协同的方式实现爬虫的高并发,控制节点可对爬虫容器进行集群管理,且爬虫容器间的隔离性好,可以减少容器内各个爬虫程序之间的干扰,提高整体系统的稳定性。

附图说明

图1为本发明实施例中基于Docker的分布式爬虫技术的基础架构;

图2为本发明实施例中数据采集方法一个实施例示意图;

图3为本发明实施例中数据采集方法另一实施例示意图;

图4为本发明实施例中数据采集方法另一实施例示意图;

图5为本发明实施例中数据采集方法另一实施例示意图;

图6为本发明实施例中数据采集方法另一实施例示意图;

图7为本发明实施例中基于Docker的分布式爬虫系统装置图;

图8为本发明实施例中控制节点一个实施例示意图;

图9为本发明实施例中控制节点另一实施例示意图;

图10为本发明实施例中控制节点另一实施例示意图;

图11为本发明实施例中爬虫节点一个实施例示意图;

图12为本发明实施例中爬虫节点另一实施例示意图;

图13为本发明实施例中控制节点另一个实施例示意图;

图14为本发明实施例中爬虫节点另一实施例示意图。

具体实施方式

本发明实施例提供了一种数据采集的方法及其相关设备,用于提高整体系统的稳定性。

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

下面首先对本发明的一些名词进行描述:

分布式爬虫是指在多个节点(例如物理主机、虚拟主机)上并发运行的多个爬虫。每个爬虫从互联网上独立或与其它爬虫协同采集网页数据,并把数据持久化存储。

Docker是一个基于轻量级虚拟化技术的开源容器引擎,开发者在此引擎上可以把应用以及相关依赖软件及工具集合打包到一个可移植的镜像中,并将镜像快速发布到生产环境上。

Kubernetes是谷歌Google开源的容器集群管理系统。

etcd是一个高可用的键值存储系统,主要用于共享配置和服务发现。

Shipyard是一个集中化的万维网Web界面Docker可视化管理平台。

本发明实施例应用于如图1所示的基于Docker的分布式爬虫技术的基础架构,整个爬虫架构分为前端可视化和后台数据采集两大模块。前端可视化模块包括可视化控制和可视化监控、后台数据采集模块包括控制者,监控者、工作者和工作者代理,其中控制者和工作者代理相当于控制节点,工作者相当于爬虫节点中的爬虫容器。

控制者基于RabbitMQ消息队列和Kubernetes组件,主要负责任务调度和容器集群管理。监控者基于Shipyard组件,对容器集群中各容器的运行状况进行监控。工作者代理基于etcd组件,负责对工作者进行服务注册和服务发现。工作者是Docker容器,各个容器内部部署运行着各类爬虫程序和存储模块。前端可视化模块基于RestfulAPI方式与后端模块交互,为系统提供可视化运维工具。

需要说明的是,以下实施例均应用于分布式爬虫系统,分布式爬虫系统包括控制节点和多个爬虫节点,其中,每个爬虫节点中都创建有多个爬虫容器。

请参阅图2,本发明实施例中数据采集方法一个实施例包括:

201、控制节点根据数据采集目标确定数据采集任务。

本实施例中,控制节点确定数据采集目标之后,会根据数据采集目标确定数据采集任务。

202、控制节点将数据采集任务调度到目标爬虫容器。

本实施例中,控制节点将数据采集任务调度到目标爬虫容器,以使目标爬虫容器根据数据采集任务,采集对应的数据,并存储采集到的数据,目标爬虫容器为多个爬虫容器中的一个。

本发明实施例中,控制节点根据数据采集目标确定数据采集任务;控制节点将数据采集任务调度到目标爬虫容器,以使目标爬虫容器根据数据采集任务,采集对应的数据,并存储采集到的数据,目标爬虫容器为多个爬虫容器中的一个。由于本发明实施例采用爬虫容器协同的方式实现爬虫的高并发,控制节点可对爬虫容器进行集群管理,且爬虫容器间的隔离性好,可以减少容器内各个爬虫程序之间的干扰,提高整体系统的稳定性。

请参阅图3,本发明实施例中数据采集方法令一个实施例包括:

301、控制节点向每个爬虫节点发送爬虫容器镜像。

本实施例中,控制节点向每个爬虫节点发送爬虫容器镜像,以使每个爬虫节点根据爬虫容器镜像创建多个爬虫容器,爬虫容器镜像包括爬虫程序和爬虫程序的依赖包。

302、控制节点根据数据采集目标确定数据采集任务。

303、控制节点将数据采集任务调度到目标爬虫容器。

本实施例中,步骤302和303与图2中步骤201和202类似,具体此处不做赘述。

需要说明的是控制节点包括任务调度中心和Docker容器集群管理中心,其中,任务调度控制中心的核心组件是RabbitMQ消息队列技术,会根据采集目标网站或采集目标内容的不同进行分类,RabbitMQ创建了多个不同的工作队列,通过交换器Exchanger将各类采集任务路由到相应的工作队列中。集群上的爬虫容器充当消费者,以订阅的方式从相应的工作队列中领取采集任务。Docker容器集群管理中心的核心组件是Kubernetes和etcd。Kubernetes对爬虫集群中的所有容器进行集中的管理,进行资源调度和均衡容灾,确保系统的可维护性和稳定性。etcd负责服务注册和服务发现,根据容器内运行采集程序的不同划分各个服务组,分配相对应的采集任务,并对各容器内采集任务的运行状态进行标记。

本发明实施例中,控制节点向每个爬虫节点发送爬虫容器镜像,以使每个爬虫节点根据爬虫容器镜像创建多个爬虫容器。控制节点根据数据采集目标确定数据采集任务,控制节点将数据采集任务调度到目标爬虫容器,以使目标爬虫容器根据数据采集任务,采集对应的数据,并存储采集到的数据,目标爬虫容器为多个爬虫容器中的一个。由于本发明实施例采用爬虫容器协同的方式实现爬虫的高并发,控制节点可对爬虫容器进行集群管理,且爬虫容器间的隔离性好,可以减少容器内各个爬虫程序之间的干扰,提高了整体系统的稳定性。

请参阅图4,本发明实施例中数据采集方法令一个实施例包括:

401、控制节点向每个爬虫节点发送爬虫容器镜像。

本实施例中,步骤401与图3中步骤301类似,具体此处不做赘述。

402、控制节点监控每个爬虫容器的运行状况。

本实施例中,控制节点监控每个爬虫容器的运行状况,控制节点根据每个爬虫容器的运行状况,管理每个爬虫容器。

其中,管理每个爬虫容器,包括控制节点停止、启动或者销毁每个爬虫容器。

需要说明的是,步骤402在步骤401之后,也可以在步骤403或404之后,具体此处不做限定。

403、控制节点根据数据采集目标确定数据采集任务。

404、控制节点将数据采集任务调度到目标爬虫容器。

本实施例中,步骤403和404与图2中步骤201和202类似,具体此处不做赘述。

需要说明的是控制节点包括任务调度中心和Docker容器集群管理中心,其中,任务调度控制中心的核心组件是RabbitMQ消息队列技术,会根据采集目标网站或采集目标内容的不同进行分类,RabbitMQ创建了多个不同的工作队列,通过交换器Exchanger将各类采集任务路由到相应的工作队列中。集群上的爬虫容器充当消费者,以订阅的方式从相应的工作队列中领取采集任务。Docker容器集群管理中心的核心组件是Kubernetes和etcd。Kubernetes对爬虫集群中的所有容器进行集中的管理,进行资源调度和均衡容灾,确保系统的可维护性和稳定性。etcd负责服务注册和服务发现,根据容器内运行采集程序的不同划分各个服务组,分配相对应的采集任务,并对各容器内采集任务的运行状态进行标记。

本发明实施例中,控制节点向每个爬虫节点发送爬虫容器镜像,以使每个爬虫节点根据爬虫容器镜像创建多个爬虫容器,控制节点对每个爬虫容器进行监控,根据该监控管理每个爬虫容器。控制节点根据数据采集目标确定数据采集任务,将数据采集任务调度到目标爬虫容器,以使目标爬虫容器根据数据采集任务,采集对应的数据,并存储采集到的数据,目标爬虫容器为多个爬虫容器中的一个。由于本发明实施例采用爬虫容器协同的方式实现爬虫的高并发,控制节点可对爬虫容器进行集群管理,且爬虫容器间的隔离性好,可以减少容器内各个爬虫程序之间的干扰,提高了整体系统的稳定性,且控制节点可以管理到爬虫节点里的每一个爬虫容器,增强了系统的管理力度。

请参阅图5,本发明实施例中数据采集方法令一个实施例包括:

501、爬虫节点中的爬虫容器从控制节点接收数据采集任务。

本实施例中,当爬虫节点中的爬虫容器创建好之后,从控制节点接收数据采集任务。

502、爬虫节点中的爬虫容器根据数据采集任务,采集对应的数据。

本实施例中,当爬虫节点中的爬虫容器从控制节点接收数据采集任务之后,爬虫节点中的爬虫容器根据数据采集任务,采集对应的数据。

503、爬虫节点中的爬虫容器存储采集到的数据。

本实施例中,爬虫节点中的爬虫容器根据数据采集任务,采集到对应的数据之后,爬虫节点中的爬虫容器存储采集到的数据。

本发明实施例中,爬虫节点中的爬虫容器从控制节点接收数据采集任务,爬虫节点中的爬虫容器根据数据采集任务,采集对应的数据,爬虫节点中的爬虫容器存储采集到的数据。由于本发明实施例采用爬虫容器协同的方式实现爬虫的高并发,控制节点可对爬虫容器进行集群管理,且爬虫容器间的隔离性好,可以减少容器内各个爬虫程序之间的干扰,提高了整体系统的稳定性。

请参阅图6,本发明实施例中数据采集方法令一个实施例包括:

601、爬虫节点从控制节点接收爬虫容器镜像。

本实施例中,控制节点中的将爬虫程序和爬虫程序的依赖包打包成可移植的爬虫容器镜像,在将该爬虫容器镜像发送至爬虫节点。

602、爬虫节点根据爬虫容器镜像创建多个爬虫容器。

本实施例中,当爬虫节点从控制节点接收爬虫容器镜像之后,爬虫节点根据爬虫容器镜像创建多个爬虫容器,通过多容器协同的方式实现爬虫高并发。

需要说明的是,操作系统为每个爬虫容器都分配了限定的中央处理器CPU和内存资源,避免了某个容器过多的占用资源而导致系统性能下降甚至系统崩溃。

603、爬虫节点中的爬虫容器从控制节点接收数据采集任务。

604、爬虫节点中的爬虫容器根据数据采集任务,采集对应的数据。

605、爬虫节点中的爬虫容器存储采集到的数据。

本实施例中,步骤603至605与图5中步骤501至503类似,具体此处不做赘述。

需要说明的是每个爬虫节点都安装了Docker,且运行着一系列的爬虫容器,该爬虫容器分为两类,一类爬虫容器中运行着各类爬虫程序,负责网页数据的下载和解析,一类为MongoDB容器,MongoDB容器运行着MongoDB数据库,负责网页数据的本地存储。

本发明实施例中,爬虫节点中的爬虫容器从控制节点接收数据采集任务,爬虫节点中的爬虫容器根据数据采集任务,采集对应的数据,爬虫节点中的爬虫容器存储采集到的数据。由于本发明实施例采用爬虫容器协同的方式实现爬虫的高并发,由于Docker基于Linux的Namespace、cgroup技术,容器之间的隔离性好,减少了容器内各个爬虫程序之间的干扰,同时通过为每个容器分配限定的CPU、内存资源,避免了某个容器过多的占用资源而导致系统性能下降甚至系统崩溃,从而提高了整体系统的稳定性,且控制节点可以管理到爬虫节点里的每一个爬虫容器,增强了系统的管理力度。

本发明实施例中,系统可以通过制作镜像和创建容器的方式动态的增加定制化的爬虫程序,扩展系统采集功能,而且爬虫程序的开发可以不限于任何一种语言,如Java、Phyton等,系统的可扩展性好。且爬虫容器的创建、启动、停止、销毁速度都在秒级以内,所以该系统可伸缩性也好。

为便于理解,下面结合具体的应用场景对本实施例进行描述:

如图7所示的系统装置图,系统将爬虫程序和所需的依赖包打包制作成可移植的Docker镜像,将镜像发布到各个爬虫节点上,再由镜像快速创建大量的爬虫容器。任务调度控制中心的核心组件是RabbitMQ消息队列技术。根据采集目标网站或采集目标内容的不同进行分类,RabbitMQ创建了多个不同的工作队列,通过Exchanger将各类采集任务路由到相应的工作队列中。集群上的爬虫容器充当消费者,以订阅的方式从相应的工作队列中领取采集任务。Docker容器集群管理中心的核心组件是Kubernetes和etcd。Kubernetes对爬虫集群中的所有容器进行集中的管理,进行资源调度和均衡容灾,确保系统的可维护性和稳定性。etcd负责服务注册和服务发现,根据容器内运行采集程序的不同划分各个服务组,分配相对应的采集任务,并对各容器内采集任务的运行状态进行标记。

Web前端控制台基于RestfulAPI的方式与后台任务调度控制中心和Docker容器集群控制中心进行交互,实现整个分布式爬虫系统的可视化控制。Shipyard提供了一个Web界面的监控平台,实现系统的可视化监控。

上面对本发明实施例中的数据采集方法进行了描述,下面对本发明实施例中的服务器进行描述,请参阅图8,本发明实施例中的控制节点包括:

确定单元801,用于根据数据采集目标确定数据采集任务;

调度单元802,用于将确定单元确定的数据采集任务调度到目标爬虫容器,以使目标爬虫容器根据数据采集任务,采集对应的数据,并存储采集到的数据,目标爬虫容器为多个爬虫容器中的一个。

本发明实施例中,确定单元801根据数据采集目标确定数据采集任务;调度单元802将数据采集任务调度到目标爬虫容器,以使目标爬虫容器根据数据采集任务,采集对应的数据,并存储采集到的数据,目标爬虫容器为多个爬虫容器中的一个。由于本发明实施例采用爬虫容器协同的方式实现爬虫的高并发,控制节点可对爬虫容器进行集群管理,且爬虫容器间的隔离性好,可以减少容器内各个爬虫程序之间的干扰,提高整体系统的稳定性。

请参阅图9,本发明实施例中控制节点令一个实施例包括:

发送单元901,用于向每个爬虫节点发送爬虫容器镜像,以使每个爬虫节点根据爬虫容器镜像创建多个爬虫容器,爬虫容器镜像包括爬虫程序和爬虫程序的依赖包;

确定单元902,用于根据数据采集目标确定数据采集任务;

调度单元903,用于将确定单元确定的数据采集任务调度到目标爬虫容器,以使目标爬虫容器根据数据采集任务,采集对应的数据,并存储采集到的数据,目标爬虫容器为多个爬虫容器中的一个。

本发明实施例中,发送单元901向每个爬虫节点发送爬虫容器镜像,以使每个爬虫节点根据爬虫容器镜像创建多个爬虫容器。确定单元902根据数据采集目标确定数据采集任务,调度单元903将数据采集任务调度到目标爬虫容器,以使目标爬虫容器根据数据采集任务,采集对应的数据,并存储采集到的数据,目标爬虫容器为多个爬虫容器中的一个。由于本发明实施例采用爬虫容器协同的方式实现爬虫的高并发,控制节点可对爬虫容器进行集群管理,且爬虫容器间的隔离性好,可以减少容器内各个爬虫程序之间的干扰,提高了整体系统的稳定性。

请参阅图10,本发明实施例中控制节点令一个实施例包括:

发送单元1001,用于向每个爬虫节点发送爬虫容器镜像,以使每个爬虫节点根据爬虫容器镜像创建多个爬虫容器,爬虫容器镜像包括爬虫程序和爬虫程序的依赖包;

监控单元1002,用于监控每个爬虫容器的运行状况;

管理单元1003,用于根据每个爬虫容器的运行状况,管理每个爬虫容器;

确定单元1004,用于根据数据采集目标确定数据采集任务;

调度单元1005,用于将确定单元确定的数据采集任务调度到目标爬虫容器,以使目标爬虫容器根据数据采集任务,采集对应的数据,并存储采集到的数据,目标爬虫容器为多个爬虫容器中的一个。

其中,管理单元1003包括:

管理子单元10031,用于控制节点停止、启动或者销毁每个爬虫容器。

本发明实施例中,发送单元1001向每个爬虫节点发送爬虫容器镜像,以使每个爬虫节点根据爬虫容器镜像创建多个爬虫容器。确定单元1004根据数据采集目标确定数据采集任务,调度单元1005将数据采集任务调度到目标爬虫容器,以使目标爬虫容器根据数据采集任务,采集对应的数据,并存储采集到的数据,目标爬虫容器为多个爬虫容器中的一个。由于本发明实施例采用爬虫容器协同的方式实现爬虫的高并发,控制节点可对爬虫容器进行集群管理,且爬虫容器间的隔离性好,可以减少容器内各个爬虫程序之间的干扰,提高了整体系统的稳定性,且控制节点可以管理到爬虫节点里的每一个爬虫容器,增强了系统的管理力度。

上面对本发明实施例中的控制节点进行了描述,下面对本发明实施例中的爬虫节点进行描述,请参阅图11,本发明实施例中的爬虫节点包括:

第一接收单元1101,用于通过爬虫节点中的爬虫容器从控制节点接收数据采集任务;

采集单元1102,用于通过爬虫节点中的爬虫容器根据接收单元接收到的数据采集任务,采集对应的数据;

存储单元1103,用于通过爬虫节点中的爬虫容器存储采集单元采集到的数据。

本发明实施例中,第一接收单元1101从控制节点接收数据采集任务,采集单元1102根据数据采集任务,采集对应的数据,存储单元1103存储采集到的数据。由于本发明实施例采用爬虫容器协同的方式实现爬虫的高并发,控制节点可对爬虫容器进行集群管理,且爬虫容器间的隔离性好,可以减少容器内各个爬虫程序之间的干扰,提高了整体系统的稳定性。

请参阅图12,本发明实施例中爬虫节点令一个实施例包括:

第二接收单元1201,用于从控制节点接收爬虫容器镜像,爬虫容器镜像包括爬虫程序和爬虫程序的依赖包;

创建单元1202,用于根据第二接收单元接收到的爬虫容器镜像创建多个爬虫容器;

第一接收单元1203,用于通过爬虫节点中的爬虫容器从控制节点接收数据采集任务;

采集单元1204,用于通过爬虫节点中的爬虫容器根据接收单元接收到的数据采集任务,采集对应的数据;

存储单元1205,用于通过爬虫节点中的爬虫容器存储采集单元采集到的数据。

本发明实施例中,第二接收单元1201从控制节点接收爬虫容器镜像,爬虫容器镜像包括爬虫程序和爬虫程序的依赖包,创建单元1202根据第二接收单元接收到的爬虫容器镜像创建多个爬虫容器;第一接收单元1203从控制节点接收数据采集任务,采集单元1204根据数据采集任务,采集对应的数据,存储单元1205存储采集到的数据。由于本发明实施例采用爬虫容器协同的方式实现爬虫的高并发,控制节点可对爬虫容器进行集群管理,且爬虫容器间的隔离性好,可以减少容器内各个爬虫程序之间的干扰,提高了整体系统的稳定性,且控制节点可以管理到爬虫节点里的每一个爬虫容器,增强了系统的管理力度。

图13是本发明实施例提供的一种控制节点结构示意图,该控制节点1300可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)1322(例如,一个或一个以上处理器)和存储器1332,一个或一个以上存储应用程序1342或数据1344的存储介质1330(例如一个或一个以上海量存储设备)。其中,存储器1332和存储介质1330可以是短暂存储或持久存储。存储在存储介质1330的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1322可以设置为与存储介质1330通信,在控制节点1300上执行存储介质1330中的一系列指令操作。

控制节点1300还可以包括一个或一个以上电源1326,一个或一个以上有线或无线网络接口1350,一个或一个以上输入输出接口1358,和/或,一个或一个以上操作系统1341,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。

上述实施例中由服务器所执行的步骤可以基于该图14所示的服务器结构。

图14是本发明实施例提供的一种爬虫节点结构示意图,该爬虫节点1400可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)1422(例如,一个或一个以上处理器)和存储器1432,一个或一个以上存储应用程序1442或数据1444的存储介质1430(例如一个或一个以上海量存储设备)。其中,存储器1432和存储介质1430可以是短暂存储或持久存储。存储在存储介质1430的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1422可以设置为与存储介质1430通信,在爬虫节点1400上执行存储介质1430中的一系列指令操作。

爬虫节点1400还可以包括一个或一个以上电源1426,一个或一个以上有线或无线网络接口1450,一个或一个以上输入输出接口1458,和/或,一个或一个以上操作系统1441,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。

上述实施例中由服务器所执行的步骤可以基于该图14所示的服务器结构。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1