首页 / 专利库 / 资料储存系统 / 大数据 / 一种通用型分布式爬虫调度系统

一种通用型分布式爬虫调度系统

阅读:70发布:2023-03-24

专利汇可以提供一种通用型分布式爬虫调度系统专利检索,专利查询,专利分析的服务。并且一种通用型分布式爬虫调度系统,包括 控制器 和爬虫器,控制器包含显示模 块 和调度模块,其中显示模块用于查看各种任务进展信息、日志以及触发对爬虫器的控制,调度模块包含通信区、维持区、数据保持区、数据缓存区;爬虫器包含爬取模块和调度模块,其中爬取模块实现具体的爬虫功能;调度模块包含通信区、维持区、数据保持区、数据缓存区;调度模块中的通信区之间采用Socket长连接异步通信方式完成互联;针对 大数据 时代获取数据效率低,存在丢失等问题,提出普适型、通用型的分布式爬虫系统 框架 ,在保证爬取过程高速、有效、准确的同时兼容多样化的爬取策略。,下面是一种通用型分布式爬虫调度系统专利的具体信息内容。

1.一种通用型分布式爬虫调度系统,其特征是包括控制器和爬虫器,控制器包含显示模和调度模块,其中显示模块用于查看各种任务进展信息、日志以及触发对爬虫器的控制,调度模块包含通信区、维持区、数据保持区、数据缓存区;爬虫器包含爬取模块和调度模块,其中爬取模块实现具体的爬虫功能;
调度模块包含通信区、维持区、数据保持区、数据缓存区;
调度模块中的通信区之间采用Socket长连接异步通信方式完成互联,既保证数据可靠传输,或以系统运行过程中按需要以热启动的方式添加新的爬虫器,具有扩展性;
调度模块中的维持区,通过定时采样过去一段时间内爬虫器的状态信息以决定未来一段时间内将要发放给维持区节点的任务数量及类别,采集的信息包括该时间段爬虫器处理的任务数及成功处理任务率;
调度模块中通过采用双层过滤法即持久过滤器和临时过滤器保证信息可靠且没有重复爬取;其中,在将数据加入数据保持区时,需要保证持久过滤器和临时过滤器其中均不含有该数据,数据加入数据保持区后,需要在临时过滤器中标注该任务已存在,待爬虫器完成爬取任务后,持久过滤器才将该任务标注为已存在;
调度模块中的数据缓存区通过将已发送的相关信息进行缓存,在相应报文得到响应后再将相关信息移出缓存区,这保证信息有效传输的同时保证所有的任务都会被执行,未得到响应的任务,其相应数据会在一段时间后返回数据保持区,其中一次通信的完成包含双方将各发出一次报文;
调度模块中的通信区Socket长连接异步通信方式,通过自定义一组完备的通信命令报文及数据传输报文保证控制器和爬虫器之间有效地沟通,报文包含报文长度域、报文流号域、报文处理方式域、URL属性标志域、URL属性域;
上述的通信报文协议,采用反射机制在传输属性中提取相应属性构建相应的URL对象。
2.根据权利要求1所述的通用型分布式爬虫调度系统,其特征是调度模块中数据缓存区包含已下发未确认的任务镜像以及已下发未确认任务镜像;前者用于系统中执行任务出错时,控制器将出错任务再次下发执行时进行缓存,等待任务执行结果后移除,若出错,仍移回爬取出错任务集合,直到出错次数达到阈值才不会被再次执行,后者用于正常任务执行,控制器将任务下发执行时进行缓存,等待任务执行结果后移除。
3.根据权利要求1所述的通用型分布式爬虫调度系统,其特征是调度模块中维持区:包括控制命令触发器、出错任务执行触发器、状态查询定时器部分;其中控制命令触发器由用户触发,以控制整个系统为目的;出错任务执行触发器由爬取出错任务集合触发,当该集合含有元素时触发,没有元素时停止触发;状态查询定时器定期查询爬虫器状态为任务下发量提供依据。
4.根据权利要求1所述的通用型分布式爬虫调度系统,其特征是调度模块中通信区:按通信流向分成主动发起的通信以及被动响应的通信;其中
主动发起的通信包含:
.控制命令报文:由控制命令触发器触发,用户参与;
.出错任务再次执行报文:由出错任务执行触发器参考出错任务集合是否含有元素进行触发,等待任务执行结果后缓存移除,若出错,仍移回爬取出错任务集合,直到出错次数达到阈值才不会被再次执行;
.状态查询报文:由定时器触发,定时发送;
被动响应的通信包含:
.任务请求的响应:含有任务时下发任务,没有任务时只确认不下发;
.新任务返回的响应:经过双层过滤后加入任务集合;
.出错任务返回的响应:直接加入任务队列;
.任务确认的响应:将任务镜像移出缓存标志任务完成。

说明书全文

一种通用型分布式爬虫调度系统

技术领域:

[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] ⑸准确度高:针对某些任务在某些爬取器上无法得到正确执行的现状,通过将执行出错的任务多次反复执行,避免由于爬虫器的问题导致任务执行失败,提高了任务执行的正确率。附图说明:
[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] ②数据缓存区:包含已下发未确认的任务镜像(曾经执行出错的任务)以及已下发未确认任务镜像(首次执行的任务)。前者用于系统中执行任务出错时,控制器将出错任务再次下发执行时进行缓存,等待任务执行结果后移除,若出错,仍移回爬取出错任务集合,直到出错次数达到阈值才不会被再次执行,后者用于正常任务执行,控制器将任务下发执行时进行缓存,等待任务执行结果后移除。
[0041] ③维持区:包括控制命令触发器、出错任务执行触发器、状态查询定时器等部分。其中控制命令触发器由用户触发,以控制整个系统为目的;出错任务执行触发器由爬取出错任务集合触发,当该集合含有元素时触发,没有元素时停止触发;状态查询定时器定期查询爬虫器状态为任务下发量等提供依据。
[0042] ④通信区:按通信流向分成主动发起的通信以及被动响应的通信。其中[0043] 主动发起的通信主要包含:
[0044] a.控制命令报文:由控制命令触发器触发,用户参与;
[0045] b.出错任务再次执行报文:由出错任务执行触发器参考出错任务集合是否含有元素进行触发,等待任务执行结果后缓存移除,若出错,仍移回爬取出错任务集合,直到出错次数达到阈值才不会被再次执行;
[0046] c.状态查询报文:由定时器触发,定时发送;
[0047] 被动响应的通信主要包含:
[0048] a.任务请求的响应:含有任务时下发任务,没有任务时只确认不下发;
[0049] b.新任务返回的响应:经过双层过滤后加入任务集合;
[0050] c.出错任务返回的响应:直接加入任务队列;
[0051] d.任务确认的响应:将任务镜像移出缓存标志任务完成;
[0052] ⑵显示模块:
[0053] ①显示模块主要包含两种功能:触发控制命令触发器控制爬虫器的运行(比如停止爬虫器运行,重启爬虫器运行等)以及查看在系统运行过程中的系统信息、任务执行进度等。参见图3,本发明爬虫器模块的详细结构为:
[0054] ⑴调度模块:
[0055] 爬虫器调度模块主要包含:数据保持区、数据缓存区、维持区、通信区等几个部分。
[0056] ①数据保持区:包含静态数据和动态数据两大部分,静态数据主要包含爬虫器配置文件、个性化爬虫配置文件(记录系统支持的爬虫类型及相应的信息等)、系统运行日志文件。动态数据区包含未处理任务集合、获取到的新任务集合、执行出错任务集合、执行正确任务集合。
[0057] ②数据缓冲区:包含已发送未确认任务镜像(执行正确的任务),主要用于缓存爬虫器返回正确执行任务确认的镜像,待确认后移出、已发送未确认任务镜像(执行出错的任务),主要用于暂存爬虫器返回错误执行任务确认的镜像,待确认后移出、已发送未确认任务镜像(爬取过程中获取的新任务),主要用于缓存爬虫器返回爬取到任务的镜像,待确认后移出。
[0058] ③维持区:包括任务请求触发器、新任务返回触发器、出错任务返回触发器、任务确认触发器等部分。其中任务请求触发器未处理任务集合触发,当该集合含有元素数量小于某个阈值时触发,大于某个阈值时停止触发;任务返回触发器(新任务)由获取到的新任务集合触发,当该集合含有元素时触发,没有元素时停止触发;任务返回触发器(出错任务)由执行出错任务集合触发,当该集合含有元素时触发,没有元素时停止触发;任务确认触发器由执行正确任务集合触发,当该集合含有元素时触发,没有元素时停止触发。
[0059] ④通信区:按通信流向分成主要发起的通信以及被动相应的通信。其中[0060] 主动发起的通信主要包含:
[0061] a.任务请求报文:任务请求触发器参考未处理任务集合是否低于某个阈值进行触发;
[0062] b.新任务返回报文:任务返回触发器(新任务)参考获取到的新任务集合是否含有元素进行触发,正确返回,移出相应镜像;
[0063] c.出错任务返回报文:任务返回触发器(出错任务)参考执行出错任务集合是否还有元素进行触发,正确返回,移出相应镜像;
[0064] d.任务确认报文:任务确认触发器参考执行正确任务集合是否含有元素进行触发,正确返回,移出相应镜像;
[0065] 被动响应的通信主要包含:
[0066] a.控制命令的响应:执行相应命令,返回执行结果;
[0067] b.出错任务再次执行的响应:立即执行,返回执行结果;
[0068] c.状态查询报文响应:返回爬虫器状态信息。
[0069] ⑵爬取模块:
[0070] ①爬取模块主要涉及爬虫的具体技术,依据获取的URL对象信息完成具体的页面获取任务。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈