[发明专利]一种分布式爬虫系统及周期性增量抓取方法有效

专利信息
申请号: 201710372282.1 申请日: 2017-05-24
公开(公告)号: CN107193960B 公开(公告)日: 2020-11-10
发明(设计)人: 张雷;韩建军;张文哲;谭龙海;王崇骏 申请(专利权)人: 南京大学
主分类号: G06F16/951 分类号: G06F16/951
代理公司: 南京瑞弘专利商标事务所(普通合伙) 32249 代理人: 陈建和
地址: 210093 江*** 国省代码: 江苏;32
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 分布式 爬虫 系统 周期性 增量 抓取 方法
【权利要求书】:

1.一种分布式爬虫系统,其特征在于,该系统被配置为基于ZooKeeper的分布式服务、系统组件和数据库三大部分,其中,系统组件包括系统监控组件Monitor、协调组件Coordinator、日志收集组件Logger、基础爬虫组件Spider,数据库包括Redis内存数据库,Redis内存数据库中存放有分布式URL任务队列和分布式BloomFilter;其中,基于ZooKeeper的分布式服务为各系统组件提供分布式协调服务,

所述系统监控组件Monitor负责系统的动态配置和系统的状态监控,

所述协调组件Coordinator负责将种子URL导入到基于Redis的分布式任务队列、周期性汇总各节点状态到ZooKeeper、为日志收集组件Logger动态分配日志源和集群节点的检测与管理中的一种或多种,

所述日志收集组件Logger负责从集群中各基础爬虫组件Spider收集日志数据,所述基础爬虫组件Spider负责处理网页的爬取任务,

所述基于Redis的分布式URL任务队列负责存储所有待爬取的任务URL,

所述基于Redis的分布式BloomFilter负责集群中所有基础爬虫组件Spider的URL去重请求;基于ZooKeeper的分布式服务通过与各系统组件相互协调工作,为各系统组件提供包括动态配置、集群节点检测与管理、Master选举、分布式锁、全局URL的ID生成的分布式服务中的一种或多种。

2.根据权利要求1所述的一种分布式爬虫系统,其特征在于,其中所述系统监控组件Monitor具有Monitor界面,用户可以通过Monitor界面修改存在于ZooKeeper上的系统配置参数,集群中的协调组件Coordinator、日志收集组件Logger和基础爬虫组件Spider会监听ZooKeeper上的相应数据节点,并在数据节点内容被修改后得到相应的通知,进而根据修改后的配置参数做相应调整。

3.根据权利要求2所述的分布式爬虫系统,其特征在于,Monitor界面还能实时显示存在于ZooKeeper上的各系统状态参数和各组件状态参数。

4.根据权利要求1所述的一种分布式爬虫系统,其特征在于,所述基础爬虫组件Spider组件具有多种组件内核,且各组件内核的爬取策略不完全一致。

5.根据权利要求1所述的分布式爬虫系统,其特征在于,所述基础爬虫组件Spider组件具有高扩展性,以方便针对新的数据源编写新的组件内核。

6.根据权利要求1所述的分布式爬虫系统,其特征在于,所述分布式URL任务队列的任务分发方式采用基础爬虫组件Spider的拉取方式。

7.根据权利要求1所述的分布式爬虫系统,其特征在于,所述分布式BloomFilter采用分段机制将bit向量分段存储在Redis不同的Key之上,并通过分段乐观锁实现各基础爬虫组件Spider访问的同步性控制。

8.一种周期性增量抓取方法,其特征在于,基于权利要求1至7任意一项所述分布式爬虫系统,包括:协调组件Coordinator周期性导入任务到分布式URL任务队列,并唤醒正在休眠的Spider组件;Spider组件根据当前分布式URL任务队列的执行情况进行休眠或周期性增量抓取,在没有抓取任务时,Spider组件就会进入休眠状态,休眠的Spider组件会被其他基础爬虫组件Spider组件或Coordinator组件唤醒时会继续进行抓取任务。

9.根据权利要求8所述的周期性增量抓取方法,其特征在于,包括如下步骤:

S1、协调组件Coordinator周期性导入任务到分布式URL任务队列,并唤醒正在休眠的Spider组件;

S2、判断是否结束系统周期性增量抓取,若为是,跳转S6,否则,执行S3;

S3、判断当前分布式任务队列是否为空,若为是,执行S4,否则,跳转S5;

S4、进入基础爬虫组件(Spider)休眠阶段,包括如下步骤:a)判断当前Spider组件除当前抓取线程外,其它抓取线程是否均已阻塞,若是,则执行步骤b),否则,执行步骤c);b)在ZooKeeper中创建休眠标示节点,该节点可以用来表示当前Spider组件已经休眠,当其他组件需要唤醒该Spider组件时只需删除该数据节点即可;c)阻塞该抓取线程;d)抓取线程已经阻塞,等待其他线程唤醒;e)抓取线程被其它线程唤醒,并执行S2;

S5、进入基础爬虫组件Spider抓取阶段,包括:a)从分布式URL队列获取抓取任务;b)根据获取的任务,抓取相应网页并存储结果;c)分析抓取到的网页超链接并获取新的任务集合;d)将获取到的新任务发送到分布式BloomFilter去重;e)将去重后的新任务添加到分布式任务队列;f)判断当前Spider组件是否有抓取线程阻塞,若有,则执行步骤g),否则,执行步骤h);g)唤醒当前Spider组件中阻塞的抓取线程;h)判断当前集群中是否有其他的Spider组件休眠,若有,则唤醒相应休眠Spider,否则,执行S2;

S6、结束。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201710372282.1/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top