一种通用型分布式爬虫调度系统的制作方法

文档序号:8498690阅读:461来源:国知局
一种通用型分布式爬虫调度系统的制作方法
【技术领域】
:
[0001]本发明主要涉互联网数据的高效采集系统,尤其涉及一种通用型分布式爬虫系统的实现。主要针对目前大数据时代数据获取效率低,分布式框架兼容性不足等问题,提出普适型、通用型的分布式爬虫调度方案,在保证高速、有效、准确的基础上兼容多样化的爬取策略,在统一的平台上实现多样化的爬取任务。
【背景技术】
:
[0002]信息时代的高速发展促进了互联网技术的迅速发展以及信息的爆炸式增长,作用日益突出的传统搜索引擎技术作为信息检索工具使人们可以快速而准确的定位到自己需要的信息。然而,受限于各种现实的环境以及技术的欠缺,功能再强大的搜索引擎也存在着信息丢失、信息更新率低等问题。
[0003]鉴于爬取整个互联网信息存在信息丢失、信息更新不及时等问题,各个行业以自身需要为导向设计了各式各样的主题式爬取策略,这些爬取策略不再强调完整搜集整个互联网上的所有数据,而是关注本行业需要关注的信息,比如以新闻为目标的新闻爬虫、以微博为特征的微博爬虫、以股票为特征的股票爬虫等。这些爬虫为面向特定的行业服务,仅需要爬取需要关注的内容,忽略了大量的垃圾信息,减少了爬取时间。
[0004]目前关于爬虫的研宄主要体现在爬取策略以及爬虫效率分析方面,面对越来越多的网络资源信息以及多元化的爬取需求,提高爬虫程序的爬取速度以及兼容多样化的爬取策略是当前信息检索领域的一个检点问题,但现有的单机爬虫技术以及传统的分布式爬虫技术并不能很好地满足爬取的需求。

【发明内容】

:
[0005]本发明需要解决的技术问题是,提供一种通用型分布式爬虫系统,主要针对信息爆炸增长的背景下爬虫效率不高,以及多样化爬虫存在的兼容性问题的现状提出一种通用型的分布式爬虫框架,以整合多样化的爬虫并提高爬虫效率。
[0006]本发明解决上述问题所采取的技术方案,一种通用型分布式爬虫调度系统,包括由控制器和爬虫器,控制器包含显示模块和调度模块,其中显示模块用于查看各种任务进展信息、日志以及触发对爬虫器的控制,调度模块包含通信区、维持区、数据保持区、数据缓存区;爬虫器包含爬取模块和调度模块,其中爬取模块实现具体的爬虫功能;
[0007]调度模块包含通信区、维持区、数据保持区、数据缓存区;
[0008]调度模块中的通信区之间采用Socket长连接异步通信方式完成互联,既保证数据可靠传输,又可以系统运行过程中按需要以热启动的方式添加新的爬虫器,具有极大的扩展性。
[0009]调度模块中的维持区,通过定时采样过去一段时间内爬虫器的状态信息以决定未来一段时间内将要发放给该节点的任务数量及类别,采集的信息主要包括该时间段爬虫器处理的任务数及成功处理任务率等。
[0010]调度模块中通过采用双层过滤法即持久过滤器和临时过滤器保证信息可靠且没有重复爬取;其中,在将数据加入数据保持区时,需要保证持久过滤器和临时过滤器其中均不含有该数据,数据加入数据保持区后,需要在临时过滤器中标注该任务已存在,待爬虫器完成爬取任务后,持久过滤器才将该任务标注为已存在。
[0011]调度模块中的数据缓存区通过将已发送的相关信息进行缓存,在相应报文得到响应后再将相关信息移出缓存区,这保证信息有效传输的同时保证所有的任务都会被执行,未得到响应的任务,其相应数据会在一段时间后返回数据保持区,其中一次通信的完成包含双方将各发出一次报文。
[0012]调度模块中的通信区Socket长连接异步通信方式,通过自定义一组完备的通信命令报文及数据传输报文保证控制器和爬虫器之间有效地沟通,报文包含报文长度域、报文流水号域、报文处理方式域、URL属性标志域、URL属性域等。
[0013]上述的通信报文协议,采用反射机制在传输属性中提取相应属性构建相应的URL对象;灵活的构建方式使我们获取更多类别的URL对象,不同的对象可以实现不同的爬取策略,因此可以兼容各式各样的爬虫,极大地提升了本系统的兼容性。
[0014]本发明的有益效果:针对信息爆炸增长的背景下爬虫效率不高以及多样化爬虫存在的兼容性问题的现状提出一种普适型、通用型的分布式爬虫框架,针对大数据时代获取数据效率低,存在丢失,分布式框架存在兼容性不足等问题,提出普适型、通用型的分布式爬虫系统框架,在保证爬取过程高速、有效、准确的同时兼容多样化的爬取策略。真实的分布式爬虫调度系统原型测试结果表明,本发明在具有传统分布式爬虫系统性能的同时重点满足了系统的稳定性、准确性以及爬取策略多样性的需要,具有实现简单、代价低等一系列的优点。与现有技术相比,其显著优点为:
[0015]⑴实现简单:本发明涉及的实现过程十分简单,结构清晰明了,适合不同需求,不同环境下低代价快速部署实现分布式爬虫系统。
[0016]⑵通用性好:本发明虽然以统一的分布式平台为基础实现,但是可以兼容几乎所有的爬虫功能,无论是面向主题的爬虫还是面向互联网的全网爬虫均可以得到支持。
[0017]⑶稳定性好:预处理式任务处理方式以及缓存区的引入,可以保证任务稳定、准确的被执行,既不会重复执行任务,也不会由于系统问题导致任务丢失。
[0018]⑷扩展性好:针对传统分布式爬虫调度系统不能实时添加爬虫节点的缺憾,本系统可以在系统运行过程中按照需要以热启动方式添加新的爬虫器。
[0019](5)准确度高:针对某些任务在某些爬取器上无法得到正确执行的现状,通过将执行出错的任务多次反复执行,避免由于爬虫器的问题导致任务执行失败,提高了任务执行的正确率。
【附图说明】
:
[0020]图1为本发明原型系统的总体架构图;
[0021]图2为本发明控制器实现结构图;
[0022]图3为本发明爬虫器实现结构图。
【具体实施方式】
:
[0023]本发明针对目前大数据时代数据获取效率低,分布式框架兼容性不足等问题,提出普适型、通用型的分布式爬虫调度系统,在保证高速、有效、准确的基础上兼容多样化的爬取策略,并据此实现了一个原型系统,用以验证发明的合理性。
[0024]为了改变目前分布式框架结构复杂、通用性弱的现状,本发明以简单、易实现为基础实现了一种通用型的分布式爬虫系统。同时,基于统一的通讯协议对URL信息进行封装,并采用反射机制提取信息,可以传输多样化的URL信息及其他数据信息,以达到多样化爬虫的目的,强化了系统的通用性。
[0025]上述反射机制即通过解析传输的附加信息在爬虫端生成对应的URL对象,并将提取的URL属性信息赋值给该URL对象,类似于面向对象语言中通过类名称来动态生成对象并依据属性名称给属性赋值。
[0026]以下结合附图详细介绍整个系统的实施过程:
[0027]参见图1,本发明的总体架构为:
[0028]⑴控制器模块:
[0029]①控制器模块主要包括调度模块(对控制器负责,维持控制器正常运行)、显示模块(对用户负责,接收用户指令并向用户展示系统运行的情况与任务执行的进度等)。
[0030]②调度模块主要包含以下几个部分:维持区(主要包含各种触发器维持系统运行)、数据保持区(系统运行过程中需要暂存的数据)、数据缓存区(暂存未确认的数据)、通信区(完成控制器与爬虫器之间的通信)。
[0031]⑵爬虫器模块:
[0032]①虫器模块主要包括调度模块(对爬虫器负责,维持爬虫器正常运行)、爬取模块(主要功能为依据URL信息完成信息采集任务,其中爬取模块实现具体的爬虫功能同现有技术)。
[0033]②调度模块主要包含以下几个部分:维持区(主要包含各种触发器维持系统运行)、数据保持区(系统运行过程中需要暂存的数据)、数据缓存区(暂存未确认的数据)、通信区(完成控制器与爬虫器之间的通信)。
[0034]⑶通信协议:
[0035]①通信方式主要采用基于Socket长连接的异步通信方式,代价低,无需系统等待直到确认,一个通信报文主要包含以下几个部分:长度域、报文流水号域、报文处理方式域、URL属性标志域、URL属性域。
[0036]②将URL视为对象,定义域模型用于传输URL属性,方便灵活,还可以采用反射机制提取出多样化的URL对象,达到兼容多样化爬虫的通用性分布式爬虫系统的要求。参见图2,本发明控制器模块的详细结构为:
[0037]⑴调度模块:
[0038]控制器调度模块主要包含:数据保持区、数据缓存区、维持区、通信区等几个部分。
[0039]①数据保持区:包含静态数据和动态数据两大部分,静态数据主要包含控制器配置文件、个性化爬虫配置文件(记录系统支持的爬虫类型及相应的信息等)、系统运行日志文件。动态数据区包含爬取出错任务集合、爬虫器状态集合、未下发任务集合、持久层过滤器以及临时过滤器。
[0040]②数据缓存区:包含已下发未确认的任务镜像(曾经执行出错的任务)以及已下发未确认任务镜像(首次执行的任务)。前者用于系统中执行
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1