[发明专利]一种基于Kafka和Quartz的分布式爬虫架构及其实现方法有效
申请号: | 201610120023.5 | 申请日: | 2016-03-03 |
公开(公告)号: | CN105677918B | 公开(公告)日: | 2019-02-15 |
发明(设计)人: | 甄教明;王茂帅;于文才;高峰;柳廷娜 | 申请(专利权)人: | 浪潮软件股份有限公司 |
主分类号: | G06F16/9535 | 分类号: | G06F16/9535;G06F16/22;G06F9/48;G06F9/54;H04L29/08 |
代理公司: | 济南信达专利事务所有限公司 37100 | 代理人: | 罗文曌 |
地址: | 250100 山东*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 kafka quartz 分布式 爬虫 架构 及其 实现 方法 | ||
1.一种基于Kafka和Quartz的分布式爬虫系统,其特征在于:该爬虫架构包括基础爬虫模块、URL存储队列模块、基于Kafka的URL消息分发模块、基于Quartz的爬虫作业调度模块和前端控制台;
所述基础爬虫模块是基于开源的单机爬虫组件,包括页面解析生成URL、URL过滤器和页面爬取;页面解析生成URL负责从当前页面中提取URL链接;URL过滤器负责根据爬取规则将产生URL链接进行过滤,得到符合规则的URL链接;页面爬取负责符合爬取规则的URL链接进行页面抓取,定制页面抓取内容;
所述URL存储队列模块,采用内存数据库,内存数据库用来存储待爬取以及已经爬取完成的URL消息队列,实现分布式爬虫的增量爬取;内存数据库自动完成数据的去重存储,完成待爬取队列的去重存储以及已爬取队列的存储,实现分布式爬虫的增量爬取和中断爬取;
所述基于Kafka的消息分发模块,采用生产者-消费者异步请求处理机制,一个生产者对应N个消费者,分别部署于不同的节点;生产者负责产生待爬取的URL消息队列,而消费者负责从待爬取队列中获取URL消息队列进行爬取,并将已完成的爬取存入已爬取队列;
所述基于Quartz的作业调度模块,负责完成对分布式爬虫架构的爬取作业的调度,爬取作业分为生产者作业和消费者作业两种类型,使用不同的作业调度规则进行调度;
所述前端控制台,负责完成对分布式爬虫的管理以及定制;前端控制台负责完成爬取入口、爬取规则、爬取结果存储方式和调度规则的参数设定以及完成对爬取作业的启停管理和分布式爬虫的集群部署管理。
2.一种基于Kafka和Quartz的分布式爬虫系统的实现方法,其特征在于:采用权利要求1中一种基于Kafka和Quartz的分布式爬虫系统,包括如下步骤:
(1)、通过前端控制台的页面设定爬取入口、爬取规则、爬取结果存储方式以及调度规则的参数,同时选择要部署的集群节点进行部署;
(2)、生产者作业根据基于Quartz的作业调度模块的调度机制,调用基础爬虫模块根据爬虫入口,提取爬取URL链接,并去重存储在待爬取队列中;
(3)、各个结点的消费者作业根据基于Quartz的作业调度模块的调度机制,调用基础爬虫模块,通过获取基于Kafka的消息分发模块的分发机制分发到本节点的URL链接消息,对URL链接进行解析爬取,并将结果存储到系统中;
(4)、通过前端控制台的页面完成对已部署爬取作业的启停管理以及各个结点的消费者作业增删管理。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮软件股份有限公司,未经浪潮软件股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610120023.5/1.html,转载请声明来源钻瓜专利网。
- 上一篇:飞行标签的获取方法和终端及服务器
- 下一篇:一种网页滑动翻页的布局方法