一种基于Heritrix爬虫的分布式采集方法及系统的制作方法

文档序号:9754284阅读:398来源:国知局
一种基于Heritrix爬虫的分布式采集方法及系统的制作方法
【技术领域】
[0001]本发明属于计算机互联网方面,涉及互联网网页式爬虫采集及监控领域,尤其涉及一种基于Heritrix爬虫的分布式采集方法及系统。
【背景技术】
[0002]目前互联网搜索引擎存在广告、垃圾网站和死链接过多问题,如搜索网页链接打开后却标示着“该链接已被删除”的信息或“请尝试其他链接”等提示。其次,中文网站检索的更新频率慢,一般每隔两至四周才由“蜘蛛”程序重新爬取;其自身系统数据库庞大,也造成数据的更新速度无法大幅度提高,从而影响检索性能的时效性。另外,互联网搜索引擎不能根据用户个性化需求进行定制功能;比如:只检索某个网站前三层URL (互联网上标准资源的地址)中的新闻视频信息,视频数据不能包含电影、电视剧等。
[0003]究其原因,是由于网络结构系统性能过低。目前各类开源网络爬虫大多都采用集中式网络结构设计:在一台服务器上给定初始URLURL集合,通过爬虫主体程序多个线程分别获取URL URL,将URL对应的html页面获取到本地进行分析,页面内容提取模块将提取可供检索的信息,URL提取模块提取新的指向其他页面的链接,经过一系统处理并保存供后续继续爬取。当系统数据规模到达一定程度(如网页数达到亿级别)时,这种架构模式的单机服务器硬件性能问题就突显出来了。
[0004]为了缓解上述问题,互联网档案馆和北欧国家图书馆联合开发出了 Heritrix。是一个由java开发的、开源的网络爬虫,用户可以使用它来从网上抓取想要的资源。Heritrix它的执行是递归进行的,主要包括以下几个步骤:(I)获取预设的一个URL ; (2)获取该URL的采集地址集;(3)解析采集地址集,并进行归档;(4)从中选择出相关的URL,并加入预设URL队列。Heritrix由一些核心类与可插件模块构成,核心类可以配置,满足实际配置需求,插件模块可任由第三方模块取代,可以不断的被其感兴趣的第三方改进,已成为一个比较成熟的开源爬虫,并被广泛使用。
[0005]在面向监管类系统中,一般的爬虫在设计上功能显得都比较臃肿。在监管系统中,爬取的范围是明确的,爬取的内容是明确的,爬取的频率基本是固定的。同样基于链的发现,而不需要遵循正常爬虫的协议,无需给出链的分值、无需建立内容索引,但需要对目标页面进行结构化抽取,并存入指定的数据库、索引库、分布式文件系统等持久化环境中。这种近乎镜像全站的爬取方法,Heritrix有着得天独厚的优越性条件,但Heritrix目前无法完好支持分布式采集与调度。

【发明内容】

[0006]本发明要解决的技术问题在于,针对现有技术的上述Heritrix目前无法完好支持分布式采集与调度缺陷,本发明对插件模块进行了改进,提供一种基于Heritrix爬虫的分布式采集方法及其系统。
[0007]根据本发明的第一方面,本发明提供了一种基于Heritrix爬虫的分布式采集方法,包括以下步骤:设置一个管理服务模块,并设置多个发布的Heritrix节点,所述管理服务模块为一个Heritrix节点管理的网页系统;通过UDP协议将所述的多个Heriteix节点广播到获取的初始种子所在的网段,管理服务模块监听到Heriteix节点信息后自动加入该节点并进行管理,管理服务模块获取初始种子以及节点任务,所述的种子为预置或者是来自于初始种子队列;管理服务模块获取节点任务,指定将任务建立到具体节点或者是全部节点上,管理服务模块通过调用Heritrix的应用程序编程接口 API在发布的Heritrix节点上生成配置节点和任务信息的配置文件管理服务模块根据Heritrix节点任务生成并获取管理服务模块获取的初始种子对应网页上的实际种子Meritrix节点从初始种子获得实际种子信息,并解析实际种子的附加信息;Heritrix从实际种子的配置文件中获取实际种子,并采集实际种子对应网页上生成的链接以及该链接对应的附加信息,Heritrix自动判别并抽取出满足条件的链接生成初始种子队列,所述附加信息包括采集层次、采集周期、节点分布、是否动态代理、子域名数量限定、正则配置。
[0008]在本发明所述的方法中,采集实际种子对应网页上生成的链接以及该链接对应的附加信息步骤,包括:对实际种子是否使用动态代理进行判别后下载网页,若为动态代理,则从管理服务模块获取动态代理地址信息,并动态随机设定一个代理地址,将采集到的信息进行字段抽取,根据种子设定的正则信息进行抽取,所述正则信息包括作者、标题、内容、来源、发布时间。
[0009]在本发明所述的方法中,还通过扩展Heritrix采集过程的生命周期监听,将监听到的状态进行判断,若采集结束,则自动重启任务,并且管理服务模块从Heritrix获取本轮采集状况,该任务重启后,管理服务模块将从初始种子队列获取下一轮初始种子进行采集,所述的采集情况包括:采集各种子的开始时间、结束时间、扫描网页数量、持久化数量、下载字节数。
[0010]在本发明所述的方法中,还监控Heritrix的运行状态,并提供Heritrix运行状态信息。
[0011]进一步的,在本发明所述的方法中,通过检查节点的心跳是否超时,若超时,在重置分配到该节点的种子,使其分配到正常工作的节点上。
[0012]根据本发明的第二方面,本发明提供一种基于Heritrix爬虫的分布式采集系统,还包括管理服务模块以及节点广播模块,所述的结点广播模块用于将多个发布的Heritrix节点通过UDP协议将所述的多个Heriteix节点广播到获取的初始种子所在的网段,所述的管理服务模块为一个Heritrix节点管理的网页系统,包括:节点处理单元:用于获取初始种子,并在监听到结点广播模块广播的多个发布的Heriteix节点信息后自动加入该节点并进行管理;任务配置单元:用于获取节点任务并将任务指定到将任务建立到具体节点或者是全部节点上,通过调用Heritrix的应用程序编程接口 API在发布的Heritrix节点上生成配置节点和任务信息的配置文件;生成获取单元:用于根据Heritrix节点任务对管理服务模块获取的初始种子对应网页上生成链接,并获取此链接,还用于控制Heritrix节点从初始种子获得实际种子信息,并解析实际种子的附加信息。
[0013]在本发明所述的系统中,管理服务模块还包括动态代理单元,所述的动态代理单元随机生成动态代理地址,并提供给Heritrix,并对实际种子是否使用动态代理进行判别后下载网页,若是,则从管理服务模块获取动态代理地址信息,并动态随机设定一个代理地址,将采集到的信息进行字段抽取,根据种子设定的正则信息进行抽取,所述动态代理地址为管理服务模块随机生成,所述正则信息包括作者、标题、内容、来源、发布时间。
[0014]在本发明所述的系统中,还包括任务重启模块,所述任务重启模块用于扩展Heritrix采集过程的生命周期监听,将监听到的状态进行判断,若采集结束,则自动重启任务,并且管理服务模块从Heritrix获取本轮采集状况,该任务重启后,管理服务模块将从初始种子队列获取下一轮初始种子进行采集。
[0015]在本发明所述的系统中,还包括实时监控模块,所述实时监控模块用于监控Heritrix的运行状态,并提供Heritrix运行状态信息。
[0016]在本发明所述的系统中,还包括节点监听模块,所述的节点监听模块用于检测节点的心跳,当心跳超时,则重新分配到该节点的种子,使其分配到正常的节点上。
[0017]实施本发明具有以下有益效果:
[0018]通过增加一个Heritrix节点管理的网页系统,并设置多个发布的Heritrix节点,通过UDP协议将所述的多个H
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1