CN113742549A - 基于计算资源的分布式爬虫调度系统及方法 - Google Patents
基于计算资源的分布式爬虫调度系统及方法 Download PDFInfo
- Publication number
- CN113742549A CN113742549A CN202010464671.9A CN202010464671A CN113742549A CN 113742549 A CN113742549 A CN 113742549A CN 202010464671 A CN202010464671 A CN 202010464671A CN 113742549 A CN113742549 A CN 113742549A
- Authority
- CN
- China
- Prior art keywords
- crawler
- seeds
- node
- navigation page
- page
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 30
- 241000270322 Lepidosauria Species 0.000 claims description 7
- 238000012545 processing Methods 0.000 claims description 6
- 230000005540 biological transmission Effects 0.000 claims description 2
- 238000005516 engineering process Methods 0.000 description 5
- 239000002699 waste material Substances 0.000 description 3
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 241000931705 Cicada Species 0.000 description 1
- 230000019771 cognition Effects 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
- G06F16/9566—URL specific, e.g. using aliases, detecting broken or misspelled links
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
- G06F16/986—Document structures and storage, e.g. HTML extensions
Abstract
一种基于计算资源的分布式爬虫调度系统及方法,通过客户端获取用户定义的爬虫方案以生成导航页爬虫种子并存储在Redis数据库中;爬虫生产者节点集群中的各节点计算自身资源获取导航页爬虫种子,并将所生成的内容页爬虫种子存储在客户端的Redis数据库中;爬虫消费者节点集群中的各个节点计算自身资源获取内容页爬虫种子,操作内容页爬虫种子采集目标数据。本发明可针对特定事件进行数据采集;基于Redis数据库进行爬虫调度,提升调度速度并保证了数据一致性;根据爬虫节点资源执行爬虫种子,充分发挥节点性能,使爬虫系统高效、易拓展。
Description
技术领域
本发明涉及的是一种信息采集领域的技术,具体是一种基于计算资源的分布式爬虫调度系统及方法。
背景技术
随着互联网的迅速发展,网络成为大量信息的载体,如何快速有效地针对某一特定事件进行信息采集成为一个巨大的挑战。现有的网络爬虫技术常常通过单个关键词对网络数据进行采集,为用户提供粗粒度的信息,这种方式只能够解决用户的部分需求。当用户关注某一特定事件时,这些网络爬虫技术往往无法根据用户提出的特定事件精确地采集网络数据。同时,单机网络爬虫技术受到自身性能限制,无法快速地获取网络数据和对海量的网络数据进行分析处理。如何通过计算资源进行分布式爬虫调度,充分利用各节点计算资源实现对舆情数据进行快速采集成为另一个亟待解决的问题。
发明内容
本发明针对现有技术存在的上述不足,提出一种基于计算资源的分布式爬虫调度系统及方法,根据用户定义的爬虫方案,可针对特定事件进行数据采集;基于Redis数据库进行爬虫调度,提升调度速度并保证了数据一致性;根据爬虫节点资源执行爬虫种子,充分发挥节点性能,使爬虫系统高效、易拓展。
本发明是通过以下技术方案实现的:
本发明涉及一种基于计算资源的分布式爬虫调度方法,通过客户端获取用户定义的爬虫方案以生成导航页爬虫种子并存储在Redis数据库中;爬虫生产者节点集群中的各节点计算自身资源获取导航页爬虫种子,并将所生成的内容页爬虫种子存储在客户端的Redis数据库中;爬虫消费者节点集群中的各个节点计算自身资源获取内容页爬虫种子,操作内容页爬虫种子采集目标数据。
所述的导航页爬虫种子是指:由待爬取的关键词、指定网站导航页面的URL及相关参数等组成的待处理的爬虫任务。导航页爬虫种子对应导航页面常常存在多条搜索内容及其链接,单条搜索内容仅包含完整内容的一部分。
所述的内容页爬虫种子是指:由导航页面中多条搜索内容的对应链接、链接来源等组成的待处理的爬虫任务。内容页中常常包含文本、图片、视频等爬虫需要采集的数据内容。
所述的客户端用于生成爬虫方案,将导航页爬虫种子发送给Redis数据库供爬虫生产者节点使用,包括:Redis数据库和生成爬虫方案的网站或应用。
所述的用户定义的爬虫方案,通过以下方式得到:客户端获取用户自定义的爬虫方案;获取爬虫方案中指定的地域关键词、人物关键词、事件关键词以及关键词间的逻辑关系;根据爬虫方案指明的逻辑关系生成备选网络爬虫关键词,即根据爬虫方案中的逻辑关系,从地域关键词、人物关键词和事件关键词中分别选择并生成多个关于人物、地域和/或事件的组合关键词。
所述的导航页爬虫种子,通过以下方式生成:根据所有备选的组合关键词结合目标网络平台的URL和查询参数生成导航页爬虫种子,导航页爬虫种子经过提取获得内容页爬虫种子。
所述的网络平台包括但不限于新浪微博、知乎、论坛、推特、百度等。
所述的提取是指:访问导航页爬虫种子所对应的导航页面,分析导航页面的HTML结构对导航页面中所包含的搜索内容链接进行提取,同时添加内容链接来源等信息。
所述的存储,优选将所有导航页爬虫种子和/或内容页爬虫种子以有序集合的形式存储在Redis数据库中,以时间戳作为有序集合中导航页爬虫种子和/或内容页爬虫种子的分值。
所述的爬虫生产者节点集群是指:用于处理导航页爬虫种子的服务器集群。
所述的内容页爬虫种子,通过以下方式生成:爬虫生产者节点集群当前节点i计算当前能继续获取的导航页爬虫种子数目其中:爬虫生产者节点集群当前节点i已用的内存资源百分比mi和CPU资源百分比ci,爬虫节点i初始化设置的内存资源百分比阈值ML和CPU资源百分比阀值CL,当前节点i正处理的导航页爬虫种子数目Wi、当前节点爬虫占用的内存资源百分比Mi和CPU百分比Ci;爬虫节点i根据当前能继续获取的导航页爬虫种子数目去获取Ni个导航页爬虫种子,利用Redis分布式锁避免重复获取的问题;当当前节点无爬虫任务执行,先获取初始化值n个导航页爬虫种子进行操作,下一步通过计算Ni来获取指定数目的导航页爬虫种子;各爬虫节点采集已获取导航页爬虫种子内容,解析导航页中存在的多个内容页爬虫种子,去除Redis数据库中已存在的内容页爬虫种子。
所述的解析是指:分析导航页面的HTML结构、Ajax动态加载内容。
所述的爬虫消费者节点集群是指:用于处理内容页爬虫种子的服务器集群。
所述的目标数据,通过以下方式得到:爬虫消费者节点集群中的当前节点j计算当前能继续获取的导航页爬虫种子数目其中:当前节点j已用的内存资源百分比mj和CPU资源百分比cj,当前节点j初始化设置的内存资源百分比阈值ML和CPU资源百分比阀值CL,当前节点j正处理的导航页爬虫种子数目Wj、当前节点爬虫占用的内存资源百分比Mj和CPU百分比Cj,当前节点j根据当前能继续获取的内容页爬虫种子数目去获取Nj个内容页爬虫种子,利用Redis分布式锁避免重复获取的问题;当当前节点无爬虫任务执行,先获取初始化值n个导航页爬虫种子进行操作,下一步通过计算Nj来获取指定数目的内容页爬虫种子;各爬虫节点采集已获取内容页爬虫种子,将采集的目标数据传输给Kafka集群进行后续的对应操作。
本发明涉及一种实现上述方法的系统,包括:分别与Redis数据库相连的客户端、爬虫生产者节点集群、爬虫消费者节点集群以及Kafka中间节点,其中:客户端生成爬虫方案并将导航页爬虫种子发送给Redis数据库,爬虫生产者节点集群通过计算当前可用资源从客户端中的Redis数据库中获取导航页爬虫种子,执行导航页爬虫种子生成内容页爬虫种子,将生成的内容页爬虫种子存储在Redis数据库中,爬虫消费者节点通过计算当前可用资源从Redis数据库中获取内容页爬虫种子,执行导航页爬虫种子生成内容页爬虫种子,将生成的网络数据发送给Kafka分布式消费系统的中间节点,Kafka中间节点缓存爬虫消费者节点传输的网络数据,等待Kafka消费者节点获取数据进行消费。
所述的Kafka分布式消费系统由Linkedin公司开发,是一个分布式、支持分区、多副本且基于zookeeper协调的分布式消息系统,包括Kafka生产者节点、中间节点和消费者节点,其中:Kafka中间节点用于中转数据传输的一个Broker,用于记录保存数据以及数据的消费状态;Kafka消费者节点是指:处理发送到当前服务器的数据引擎。
技术效果
本发明整体解决了针对特定事件的数据采集任务调度难题以及当前计算资源进行爬虫调度的难题。
与现有技术相比,本发明通过多类关键词的组合方式在一定程度上保证了对特定事件的数据采集,保证目的数据与特定事件的关联性,根据用户需求提供更为细粒度的数据采集方法。本发明利用Redis数据库解决了爬虫种子的重复执行问题;各爬虫节点根据本身资源执行爬虫任务,充分发挥各节点的性能;同时利用Redis的分布式锁避免了多节点间数据一致性的问题。通过本方法避免爬虫资源的无端浪费;提高数据采集速度。本发明结合数据采集中往往存在导航页和内容页的特性,通过分离导航页和内容页的爬虫任务,降低了爬虫系统的耦合性,使得爬虫系统易于管理。
附图说明
图1为实施例分布式爬虫的调度方法流程图;
图2为实施例分布式爬虫调度系统结构图;
图3为实施例爬虫生产者节点集群的实现流程图;
图4为实施例爬虫消费者节点集群的实现流程图。
具体实施方式
本实施例的应用场景主要针对网络舆情数据采集,结合网络舆情采集存在导航页和内容页的特性,根据用户定义的舆情爬虫方案,针对特定舆情事件进行数据采集;基于Redis数据库进行爬虫调度,提升调度速度并保证了数据一致性;根据分布式爬虫节点资源执行爬虫种子,充分发挥各节点性能,使爬虫系统更高效、易拓展。
本实施例根据舆情爬虫方案指明的关键词与或关系生成备选网络舆情事件关键词,包括:根据舆情爬虫方案中的关键词与或关系,从地域关键词、人物关键词和事件关键词中分别选择关键词,生成多个关于人物、地域和/或事件的舆情组合关键词。
本实施例主要是针对特定事件的一系列关键词,关键词间存在与或关系。每一类关键词包括必选关键词和可选关键词,必选关键词会出现在每一个人物、地域和/或事件的舆情组合关键词中,而可选关键词通过组合方式出现在部分舆情组合关键词中,从而生成多个备选网络舆情事件关键词。
如图1所示,为本实施例涉及一种舆情领域基于计算资源的分布式爬虫的调度方法,包括如下步骤:
S101,获取用户定义的舆情爬虫方案,具体包括:
i)获取用户自定义的舆情爬虫方案;
ii)获取舆情爬虫方案中指定的地域关键词、人物关键词和事件关键词和关键词间的与或关系;
iii)根据舆情爬虫方案指明的关键词的与或关系生成备选网络舆情爬虫关键词。
S102,客户端根据用户定义的舆情爬虫方案生成导航页爬虫种子存储在Redis数据库中;
如图2所示,为本实施例涉及的一种分布式爬虫调度系统,包括:分别与Redis数据库相连的客户端、爬虫生产者节点集群、爬虫消费者节点集群以及Kafka中间节点,其中:客户端与Redis数据库相连接进行爬虫方案的传输;爬虫生产者集群向Redis获取导航页爬虫种子和发送内容页爬虫种子;爬虫消费者集群向Redis获取内容页爬虫种子,并向Kafka中间节点发送采集到的舆情数据;Kafka消费者集群主动向Kafka中间节点获取采集的舆情数据。
客户端根据所有备选的舆情组合关键词结合新浪微博、知乎、论坛、推特等网络舆情平台URL和查询参数生成导航页爬虫种子,导航页爬虫种子经过处理后往往能获得一定量的内容页爬虫种子;
根据导航页爬虫种子的创建时间生成时间戳,将所有导航页爬虫种子以有序集合的形式存储在Redis数据库中,以时间戳作为有序集合中内容页爬虫种子的分值。
本实施例中,由于存在多个如新浪微博、知乎、论坛、推特等网络舆情平台的URL,而查询参数往往为关键词、查询范围(查询页码、每页查询内容条数)、查询结果排序方式组成。通过组合关键词、平台URL、查询范围和生成时间戳可以生成多个导航页爬虫种子,最终生成的导航页爬虫种子表示为
{[taskURL1,timestamp1],[taskURL2,timestamp2],…,[taskURLn,timestampn]},由客户端将导航页爬虫种子存储以有序集合的方式存储到Redis数据库中,接下来的生产者节点集群主要是通过从Redis数据库中获取导航页爬虫种子完成调度。
S103,如图3所示,爬虫生产者节点集群根据自身资源获取导航页爬虫种子,操作导航页爬虫种子生成内容页爬虫种子并存储在Redis数据库中,具体为:爬虫生产者节点集群各节点根据自身资源获取导航页爬虫种子,操作导航页爬虫种子生成内容页爬虫种子并存储在Redis数据库中:由爬虫生产者节点集群当前节点i计算当前能继续获取的导航页爬虫种子数目Ni,利用当前节点的调度器向Redis数据库中获取Ni个爬虫种子,最终采集导航页爬虫种子的内容页爬虫种子,传输给Redis数据库。
所述的爬虫生产者节点集群中的当前节点i包括调度器和数据采集器,其中:调度器初始化内存资源百分比阈值ML、CPU资源百分比阀值CL和初始爬虫执行数目n。判断当前节点是否有剩余资源,Redis中是否有需要等待执行的导航页爬虫种子,当其中一项不满足时,调度器停止调度,休眠一分钟后重新判断当前节点是否当前需要进行调度导航页爬虫种子。若调度器需要对资源进行调度计算当前节点i已用内存资源百分比mi和CPU资源百分比ci;判断当前节点i正处理的导航页爬虫种子数目Wi、当前节点爬虫占用的内存资源百分比Mi和CPU百分比Ci;计算当前能继续获取的导航页爬虫种子数目当当前节点无爬虫任务执行,先获取初始化值n个导航页爬虫种子进行操作,爬虫节点i根据当前能继续获取的导航页爬虫种子数目去获取Ni个导航页爬虫种子,利用Redis分布式锁避免重复获取的问题;
本实施例中,利用Redis分布式锁去获取爬虫种子,根据爬虫种子时间戳从小到大,获取爬虫种子,每一次利用Redis的SETNX获取锁去获取Ni个导航页爬虫种子,获取完导航页爬虫种子释放锁。当无法获取锁时,进行等待直到成功获取导航页爬虫种子。如此设置,能够避免数据一致性问题,同时减少了爬虫资源的浪费。
所述的爬虫生产者节点集群中的各节点采集已获取导航页爬虫种子内容,解析导航页中存在的多个内容页爬虫种子,去除Redis数据库中已存在的内容页爬虫种子,并将去重后的内容页爬虫种子放到Redis数据库中供爬虫消费者节点集群使用,在Redis数据库中以时间戳作为有序集合的分值方式进行存储。
所述的Redis数据库中关于内容页的有序集合包括准备、执行中和已完成,即ready、execute和finish集合:当生产者爬虫节点采集完内容页爬虫种子时,从finish集合和execute集合查询是否存在已完成的内容页爬虫种子,当存在则删除这些重复的爬虫种子。将剩余的内容页爬虫种子以<内容页URL、抓取时间戳、内容来源平台>的方式发送给Redis数据库的ready集合,用于爬虫消费者节点集群的处理。通过Redis对重复的内容页爬虫种子进过滤,节省了爬虫资源和利用Redis对爬虫种子进行访问和存储加快了爬虫调度。
S104,如图4所示,爬虫消费者节点集群根据自身资源获取内容页爬虫种子,针对内容页爬虫种子对相应内容页数据进行HTML、Ajax解析,对文本、视频、图片内容进行采集,并对采集的内容页数据进行清理、发送给Kafka中间节点用于后续操作。
本实施例中,爬虫消费者节点集群当前节点j计算当前能继续获取的导航页爬虫种子数目Nj,利用当前节点的调度器向Redis数据库中获取Nj个爬虫任务,各爬虫节点处理已获取的内容页爬虫种子,将采集的舆情数据传输给Kafka集群进行后续操作。
所述的爬虫消费者节点集群包括:调度器和数据采集器,其中:调度器初始化内存资源百分比阈值ML、CPU资源百分比阀值CL和初始爬虫执行数目n。判断当前节点是否有剩余资源,Redis的Ready集合中是否有需要等待执行的内容页爬虫种子,当其中一项不满足时,调度器停止调度,休眠一分钟后重新判断当前节点是否当前需要进行调度内容页爬虫种子。若调度器需要对资源进行调度计算当前节点j已用内存资源百分比mj和CPU资源百分比cj;判断当前节点j正处理的导航页爬虫种子数目Wj、当前节点爬虫占用的内存资源百分比Mj和CPU百分比Cj;计算当前能继续获取的导航页爬虫种子数目当当前节点无爬虫任务执行,先获取初始化值n个内容页爬虫种子进行操作,爬虫节点j根据当前能继续获取的导航页爬虫种子数目去获取Nj个内容页爬虫种子,利用Redis分布式锁避免重复获取的问题。
本实施例中,利用Redis分布式锁去获取爬虫种子,根据爬虫种子时间戳从小到大,从ready集合获取爬虫种子,同时检测execute集合中是否存在上个爬虫周期存在的中断的内容页爬虫种子,将其添加到ready集合中,每一次利用Redis的SETNX获取锁去获取Nj个内容页爬虫种子,获取完内容页爬虫种子释放锁。当无法获取锁时,进行等待直到成功获取内容页爬虫种子。如此设置,能够避免数据一致性问题,同时减少了爬虫资源的浪费。
具体的,采集的舆情数据以topic方式传输给Kafka集群进行后续操作,在本实施例中topic包括新浪微博、知乎、论坛、推特等,各爬虫节点数据采集器采集的舆情数据根据其来源按照topic分发给Kafka中间节点,Kafka消费者节点集群从Kafka集群中获取采集的舆情数据进行处理。如此设置降低了爬虫系统的耦合性,增加分布式爬虫调度系统的稳定性。采集到的舆情数据内容常见结构,如下所示:
struct message{#内容结构体
1.required id#随机生成的唯一id
2.content#采集的舆情数据内容
3.resource#采集的舆情数据平台来源
4.url#采集的内容页种子URL
5.time#采集该舆情数据的时间
}
经过具体实际实验,以百度网站作为目标网站,客户端部署在1台CPU 4核内存32GB的Centos 7.2 64位操作系统机器中;爬虫生产者集群部署在1台CPU 24核内存32GB的Centos 7.2 64位操作系统机器;爬虫消费者集群部署在3台CPU 24核内存32GB的Centos7.2 64位操作系统机器的具体环境设置下,以初始爬虫任务数5个和资源阈值90%运行上述方法,能够得到的实验数据是:3台爬虫消费者集群3小时共采集200多万个页面,平均采集速率为13353页/min,每台机器的平均采集速率在4451页/min。
与现有技术相比,本发明通过用户定义的爬虫方案生成组合关键词进行爬虫种子生成;通过Redis数据库进行爬虫生产者集群与爬虫消费者集群间的爬虫种子调度;通过计算资源情况,集群内的各节点向Redis数据库进行爬虫种子获取,利用分布式锁避免重复爬虫种子的获取。与未基于计算资源的爬虫调度方案相比,本方法拥有更快的平均采集速率、更稳定灵活。
上述具体实施可由本领域技术人员在不背离本发明原理和宗旨的前提下以不同的方式对其进行局部调整,本发明的保护范围以权利要求书为准且不由上述具体实施所限,在其范围内的各个实现方案均受本发明之约束。
Claims (9)
1.一种基于计算资源的分布式爬虫调度方法,其特征在于,通过客户端获取用户定义的爬虫方案以生成导航页爬虫种子并存储在Redis数据库中;爬虫生产者节点集群中的各节点计算自身资源获取导航页爬虫种子,并将所生成的内容页爬虫种子存储在客户端的Redis数据库中;爬虫消费者节点集群中的各个节点计算自身资源获取内容页爬虫种子,操作内容页爬虫种子采集目标数据;
所述的导航页爬虫种子是指:由待爬取的关键词、指定网站导航页面的URL及相关参数等组成的待处理的爬虫任务,导航页爬虫种子对应导航页面常常存在多条搜索内容及其链接,单条搜索内容仅包含完整内容的一部分;
所述的内容页爬虫种子是指:由导航页面中多条搜索内容的对应链接、链接来源等组成的待处理的爬虫任务;内容页中常常包含文本、图片、视频等爬虫需要采集的数据内容;
所述的爬虫生产者节点集群是指:用于处理导航页爬虫种子的服务器集群;
所述的爬虫消费者节点集群是指:用于处理内容页爬虫种子的服务器集群。
2.根据权利要求1所述的基于计算资源的分布式爬虫调度方法,其特征是,所述的用户定义的爬虫方案,通过以下方式得到:客户端获取用户自定义的爬虫方案;获取爬虫方案中指定的地域关键词、人物关键词、事件关键词以及关键词间的逻辑关系;根据爬虫方案指明的逻辑关系生成备选网络爬虫关键词,即根据爬虫方案中的逻辑关系,从地域关键词、人物关键词和事件关键词中分别选择并生成多个关于人物、地域和/或事件的组合关键词。
3.根据权利要求1所述的基于计算资源的分布式爬虫调度方法,其特征是,所述的导航页爬虫种子,通过以下方式生成:根据所有备选的组合关键词结合目标网络平台的URL和查询参数生成导航页爬虫种子,导航页爬虫种子经过提取获得内容页爬虫种子。
4.根据权利要求3所述的基于计算资源的分布式爬虫调度方法,其特征是,所述的提取是指:访问导航页爬虫种子所对应的导航页面,分析导航页面的HTML结构对导航页面中所包含的搜索内容链接进行提取,同时添加内容链接来源信息。
5.根据权利要求1所述的基于计算资源的分布式爬虫调度方法,其特征是,所述的存储,将所有导航页爬虫种子和/或内容页爬虫种子以有序集合的形式存储在Redis数据库中,以时间戳作为有序集合中导航页爬虫种子和/或内容页爬虫种子的分值。
6.根据权利要求1所述的基于计算资源的分布式爬虫调度方法,其特征是,所述的内容页爬虫种子,通过以下方式生成:爬虫生产者节点集群当前节点i计算当前能继续获取的导航页爬虫种子数目其中:爬虫生产者节点集群当前节点i已用的内存资源百分比mi和CPU资源百分比ci,爬虫节点i初始化设置的内存资源百分比阈值ML和CPU资源百分比阀值CL,当前节点i正处理的导航页爬虫种子数目Wi、当前节点爬虫占用的内存资源百分比Mi和CPU百分比Ci;爬虫节点i根据当前能继续获取的导航页爬虫种子数目去获取Ni个导航页爬虫种子,利用Redis分布式锁避免重复获取的问题;当当前节点无爬虫任务执行,先获取初始化值n个导航页爬虫种子进行操作,下一步通过计算Ni来获取指定数目的导航页爬虫种子;各爬虫节点采集已获取导航页爬虫种子内容,解析导航页中存在的多个内容页爬虫种子,去除Redis数据库中已存在的内容页爬虫种子,即分析导航页面的HTML结构、Ajax动态加载内容。
7.根据权利要求1所述的基于计算资源的分布式爬虫调度方法,其特征是,所述的目标数据,通过以下方式得到:爬虫消费者节点集群中的当前节点j计算当前能继续获取的导航页爬虫种子数目其中:当前节点j已用的内存资源百分比mj和CPU资源百分比cj,当前节点j初始化设置的内存资源百分比阈值ML和CPU资源百分比阀值CL,当前节点j正处理的导航页爬虫种子数目Wj、当前节点爬虫占用的内存资源百分比Mj和CPU百分比Cj,当前节点j根据当前能继续获取的内容页爬虫种子数目去获取Nj个内容页爬虫种子,利用Redis分布式锁避免重复获取的问题;当当前节点无爬虫任务执行,先获取初始化值n个导航页爬虫种子进行操作,下一步通过计算Nj来获取指定数目的内容页爬虫种子;各爬虫节点采集已获取内容页爬虫种子,将采集的目标数据传输给Kafka集群进行后续的对应操作。
8.一种实现上述任一权利要求所述方法的系统,其特征在于,包括:分别与Redis数据库相连的客户端、爬虫生产者节点集群、爬虫消费者节点集群以及Kafka中间节点,其中:客户端生成爬虫方案并将导航页爬虫种子发送给Redis数据库,爬虫生产者节点集群通过计算当前可用资源从客户端中的Redis数据库中获取导航页爬虫种子,执行导航页爬虫种子生成内容页爬虫种子,将生成的内容页爬虫种子存储在Redis数据库中,爬虫消费者节点通过计算当前可用资源从Redis数据库中获取内容页爬虫种子,执行导航页爬虫种子生成内容页爬虫种子,将生成的网络数据发送给Kafka中间节点,Kafka中间节点缓存爬虫消费者节点传输的网络数据,等待Kafka消费者节点获取数据进行消费。
9.根据权利要求8所述的系统,其特征是,所述的Kafka中间节点是指:用于中转数据传输的一个Broker,用于记录保存数据以及数据的消费状态;Kafka消费者节点是指:处理发送到当前服务器的数据引擎。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010464671.9A CN113742549A (zh) | 2020-05-28 | 2020-05-28 | 基于计算资源的分布式爬虫调度系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010464671.9A CN113742549A (zh) | 2020-05-28 | 2020-05-28 | 基于计算资源的分布式爬虫调度系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113742549A true CN113742549A (zh) | 2021-12-03 |
Family
ID=78723514
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010464671.9A Pending CN113742549A (zh) | 2020-05-28 | 2020-05-28 | 基于计算资源的分布式爬虫调度系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113742549A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103617174A (zh) * | 2013-11-04 | 2014-03-05 | 同济大学 | 一种基于云计算的分布式搜索方法 |
US20170068735A1 (en) * | 2015-09-08 | 2017-03-09 | MOLBASE (Shanghai) Biotechnology Co., Ltd . | Task-crawling system and task-crawling method for distributed crawler system |
CN107241319A (zh) * | 2017-05-26 | 2017-10-10 | 山东省科学院情报研究所 | 基于vpn的分布式网络爬虫系统及调度方法 |
CN109359231A (zh) * | 2017-12-29 | 2019-02-19 | 广州Tcl智能家居科技有限公司 | 一种分布式网络爬虫的信息爬取方法、服务器及存储介质 |
CN110929126A (zh) * | 2019-12-02 | 2020-03-27 | 杭州安恒信息技术股份有限公司 | 一种基于远程过程调用实现的分布式爬虫调度方法 |
-
2020
- 2020-05-28 CN CN202010464671.9A patent/CN113742549A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103617174A (zh) * | 2013-11-04 | 2014-03-05 | 同济大学 | 一种基于云计算的分布式搜索方法 |
US20170068735A1 (en) * | 2015-09-08 | 2017-03-09 | MOLBASE (Shanghai) Biotechnology Co., Ltd . | Task-crawling system and task-crawling method for distributed crawler system |
CN107241319A (zh) * | 2017-05-26 | 2017-10-10 | 山东省科学院情报研究所 | 基于vpn的分布式网络爬虫系统及调度方法 |
CN109359231A (zh) * | 2017-12-29 | 2019-02-19 | 广州Tcl智能家居科技有限公司 | 一种分布式网络爬虫的信息爬取方法、服务器及存储介质 |
CN110929126A (zh) * | 2019-12-02 | 2020-03-27 | 杭州安恒信息技术股份有限公司 | 一种基于远程过程调用实现的分布式爬虫调度方法 |
Non-Patent Citations (1)
Title |
---|
黄志敏;曾学文;陈君: "一种基于Kademlia的全分布式爬虫集群方法", 计算机科学, vol. 41, no. 3, 15 March 2014 (2014-03-15), pages 124 - 128 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6290609B2 (ja) | 検索中に関連性のない情報を削減するシステム及び方法 | |
Mishne et al. | Fast data in the era of big data: Twitter's real-time related query suggestion architecture | |
CN110362544B (zh) | 日志处理系统、日志处理方法、终端及存储介质 | |
US20170364834A1 (en) | Real-time monitoring of public sentiment | |
US20110087647A1 (en) | System and method for providing web search results to a particular computer user based on the popularity of the search results with other computer users | |
EP3918758A1 (en) | Real-time event detection on social data streams | |
CN109840298B (zh) | 大规模网络数据的多信息来源采集方法和系统 | |
WO2006004680A2 (en) | Ecosystem method of aggregation and search and related techniques | |
CN109815382B (zh) | 大规模网络数据的感知与获取方法和系统 | |
WO2007140364A2 (en) | Method for scoring changes to a webpage | |
CN109753596B (zh) | 用于大规模网络数据采集的信源管理与配置方法和系统 | |
Cha et al. | The spread of media content through blogs | |
CN109819019B (zh) | 用于大规模网络数据采集的监控与统计分析方法和系统 | |
CN111159590A (zh) | 一种基于前后端业务调用链路的串联方法及装置 | |
Hurst et al. | Social streams blog crawler | |
CN113742549A (zh) | 基于计算资源的分布式爬虫调度系统及方法 | |
Shivaprasad et al. | Knowledge discovery from web usage data: An efficient implementation of web log preprocessing techniques | |
CN102902737B (zh) | 一种网络图像自主收集与筛选方法 | |
Sun et al. | Big data analysis on social networking | |
Li et al. | Research of network data mining based on reliability source under big data environment | |
EP3380906A1 (en) | Optimization for real-time, parallel execution of models for extracting high-value information from data streams | |
Han et al. | A real-time knowledge extracting system from social big data using distributed architecture | |
CN110866165A (zh) | 一种网络视频采集方法及系统 | |
Chen et al. | Preference utility mining of web navigation patterns | |
JP7098122B1 (ja) | 記事監視システム、注目情報が記述された記事の監視方法、コンピュータプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |