[发明专利]一种基于内存数据库的分布式爬虫框架及实现方法在审
| 申请号: | 201711250004.5 | 申请日: | 2017-12-01 |
| 公开(公告)号: | CN107943991A | 公开(公告)日: | 2018-04-20 |
| 发明(设计)人: | 尹学渊;罗剑锋;何林 | 申请(专利权)人: | 成都嗨翻屋文化传播有限公司 |
| 主分类号: | G06F17/30 | 分类号: | G06F17/30;G06F9/48 |
| 代理公司: | 成都睿道专利代理事务所(普通合伙)51217 | 代理人: | 潘育敏 |
| 地址: | 610000 四川省成都市天*** | 国省代码: | 四川;51 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 内存 数据库 分布式 爬虫 框架 实现 方法 | ||
技术领域
本发明属于计算机数据挖掘的技术领域,具体地说,涉及一种基于内存数据库的分布式爬虫框架及实现方法。
背景技术
如今我们正生活在一个信息爆炸的年代,随着互联网行业迅猛发展,这些信息每年以指数级增长。如何使用网络爬虫技术高效的爬取web中的数据成为一个严峻的问题,而单机爬虫不仅受到网络带宽、服务器配置等环境限制,并且很难在多个单机爬虫间进行协作,继而保证数据抓取过程中无重复请求,以及数据信息的唯一性。
因此,将网络爬虫采取分布式协作方式进行设计可以大大提高爬取数据的效率。
分布式网络爬虫在当今社会已经有了比较广泛的应用,例如Google和百度所使用的网络爬虫就采用了分布式系统,但是很少的想关信息进行交流,目前国外使用较多的分布式爬虫有Mercator、Google Crawler、UbiCrwaler、Internet Archive Crawler等,国内比较著名的是Web Gather。
Google的分布式网络爬虫系统是一台中央主机和三台负责爬虫的机器,并且这三台机器只与中央主机通信。中央主机从一个文件系统中读取URL,并把它们分给其它机器的爬虫进程中。爬虫采用异步I/O同时从三百个网站上获取数据。所有爬虫将下载下来的页面压缩并存储在磁盘上。然后索引进程从这些HTML页面中将URL提取出来存放在另外一个磁盘文件中。URLResolver进程读取这个存放链接的文件,将其中的相对链接转换(通过浏览文件夹按钮进行链接的方式即本地链接)为绝对链接(一个指向摸个文件的精确位置的超级链接,该文件可以存储在某个文件服务器、万维网或某家公司的内联网上),继而提供给主机。不足之处在于,一旦中央主机崩溃失效,则整个系统都会停止工作,而且中央主机的URL分配模块常常成为整个系统的性能瓶颈。
Mercator是Alta Vista搜索引擎的网络爬虫,它完全由JAVA编写。Mercator的扩展性非常好,可以通过增减或替换模块来实现不同的功能。Mercator采用的数据结构可以使无论爬行的规模有多大,只占用有限的内存,数据结构的大部分都在硬盘中存取。Mercator为最近访问的URL建立了缓存,该缓存的命中率达到了85%。Mercator证明了使用JAVA语言也可以达到较高的性能。
Internet Achieve采用多个机器共同搜集页面。每个Crawler进程负责收集64个Web网站的网页。Crawler从初始的URL库中读取,采用异步I/O并行爬行网页。网页下载后,提取出超链接。如果超链接属于本Crawler负责收集的Web站点,则加入未访问URL集合,否则存储到交叉的URL文件中。批处理模块定期分配这些交叉URL文件到相应的搜集模块,再次过程中要过滤到重复的URL。
现有技术缺点:针对开源大型爬虫,大多没有一个成型的可自定义的分布式调度;传统设计方式存在时延长、不能大数据化的弊端。
发明内容
针对现有技术中上述的不足,本发明提供一种基于内存数据库的分布式爬虫框架及实现方法,本发明的分布式爬虫的实现方法内存使用可控,不会随着URL不断增加而改变;调度快,在URL不断增加的情况下,不会降低任务调度速率;爬虫高效,分布式多节点爬取,扩展简单、自由度高。
为了达到上述目的,本发明采用的解决方案是:一种基于内存数据库的分布式爬虫框架及实现方法,所述的分布式爬虫框架包括以下模块:生产者爬虫、消费者爬虫、过滤器以及内存数据库、消息队列、存储介质。
所述的分布式爬虫实现方法包括以下步骤:
a、根据项目所需要的数据信息,生产者爬虫不断地从网络中提取相应的url地址;
b、过滤器将生产者爬虫提取的url进行去重处理;
c、内存数据库存储去重处理后的种子url队列,同时存储过滤器的位数组,并且向消费者爬虫调度分配url任务;
d、消费者爬虫循环地向内存数据库请求url任务,根据url地址进行实际的数据抓取,抓取数据后将数据保存至存储介质,并且在数据抓取过程中提取出待爬取的url,将爬取的url交给过滤器处理;
e、存储介质持久化保存实际数据、存储消费者爬虫抓取的原始数据。
进一步地,所述的过滤器采用布隆过滤器。
进一步地,所述的布隆过滤器利用布隆过滤算法对url进行判重,如果布隆过滤器判重结果为否,则表示url尚未加入到待抓取的种子url队列中,继而存储到种子url队列;如果布隆过滤器判重结果为是,则表示此url已经存储,直接丢弃。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于成都嗨翻屋文化传播有限公司,未经成都嗨翻屋文化传播有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711250004.5/2.html,转载请声明来源钻瓜专利网。





