[发明专利]一种分布式网络爬虫系统中的URL去重方法有效
申请号: | 201210090259.0 | 申请日: | 2012-03-30 |
公开(公告)号: | CN102663058A | 公开(公告)日: | 2012-09-12 |
发明(设计)人: | 邹复好;凌贺飞;李平;刘学;邱荷花 | 申请(专利权)人: | 华中科技大学 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 华中科技大学专利中心 42201 | 代理人: | 朱仁玲 |
地址: | 430074 湖北*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 分布式 网络 爬虫 系统 中的 url 方法 | ||
技术领域
本发明属于网络应用技术领域,具体涉及一种分布式网络爬虫系统中的URL去重方法。
背景技术
随着互联网信息爆炸式增长,用户感兴趣的信息淹没于大量无关信息中,利用搜索引擎获取感兴趣的信息已经成为人们获取信息较为便捷的方式。作为搜索引擎的基础构件之一的网络爬虫,需要直接面向互联网,不间断地从互联网上搜集信息,为搜索引擎提供数据来源。搜索结果是否丰富、获得的信息是否包括新近更新的内容,均与网络爬虫的效率紧密相关。然而互联网规模十分庞大,根据第27次中国互联网报告,2010年中国网站数目已经达到191万,网页数量超过600亿。如此海量的数据对网络爬虫的设计与实现提出了更高的要求,构建分布式网络爬虫系统是一个有效的解决方案。相应地,作为网络爬虫核心关键技术的URL去重方法对爬虫系统的性能影响尤为重要。
网络爬虫是一个机器人程序,它从指定URL地址开始下载页面文档,提取其中的URL地址,再从提取的URL地址开始继续爬行。由于新提取到的URL地址可能已在前面处理过,继续下载这些URL地址只会造成重复下载,浪费计算资源,因此对提取到的每个URL地址必须判断是否已经 处理过,去除已下载的重复URL地址。在分布式网络爬虫系统中,需要采用某种策略将URL任务平均分配到多个主机并行爬行,划分策略必须高效且易于实现。而在分布式环境下,某个主机提取到的URL地址可能已被系统其它主机处理过,因此系统要有一种分布式的URL去重机制。
目前已有的URL去重方法主要有基于内存的去重和基于数据库的去重。在基于内存的URL去重方式中,爬虫将系统URL全部放在内存中,并使用一个易于查找的数据结构(如哈希表)进行维护,每当遇到新的URL时,立即查找内存URL集中是否存在该URL地址。由于内存有限,而URL数量庞大,内存不可能容纳所有的URL,因此一个改进的去重方法是将一部分URL放在内存中,而将大部分URL存放在外存中,通过某种调度算法(如最近最少使用LRU)实现类似缓存的效果,以应对内存不足问题。基于数据库的去重则是在数据库中维护URL表结构,将解析到的URL插入数据库表中,依靠数据库的唯一性约束条件对URL进行是否重复的判断。
直接使用内存的去重方式在小规模爬虫中使用较多,由于内存空间有限,因而该方法很难扩展到大规模的URL去重任务。大规模爬虫通常采用内存与外存结合的去重方式,但通常URL查找的内存命中率存在波动(当爬行进入一个新的域名网站时,命中率迅速下降),调度算法的实现同样加大了系统的复杂性,而且在分布式环境下,某个实际爬行结点可能因故障等原因退出爬行,新的主机也可随时加入系统爬行,这时系统必须重新进行任务划分,因此用于URL去重的数据结构也需进行转移,以保证某个主机爬行过的URL任务不会被其它主机重复爬行,这种内存外存调度的数据结构不适合转移,或者是转移开销过大。而在基于数据库的判重方式下, 所有URL任务被发往数据库,导致数据压力过大,当数据存放的URL任务过多时,数据库的性能急剧下降,并且去重依赖于数据库,这对数据库的稳定性提出极为严格的要求,数据库异常将直接导致爬虫系统的崩溃。综上所述,无论是基于内存的URL去重还是基于数据库的URL去重都很难适应于大规模的分布式网络爬行环境,无法有效解决分布式网络爬行系统中实际爬行结点动态加入与退出所造成的重复爬行问题。
发明内容
本发明的目的在于提供一种分布式网络爬虫系统中的URL去重方法,其可有效解决实际爬行结点动态加入与退出所造成的重复爬行问题,通过引入虚拟爬行结点及布隆过滤器(英文为Bloom Filter)去重结构,实现了分布式URL去重方法,使得分布式网络爬行系统能稳定持久运行,去重数据结构可全部存放内存中,去重效率高,且当系统重新进行任务划分后,相应的URL去重数据结构能高效转移,保证系统不会重复爬行。
本发明是通过以下技术方案实现的:
一种分布式网络爬虫系统中的URL去重方法,在初始阶段先设定系统的虚拟爬行结点数N及初始URL任务集,每一个虚拟爬行结点对应一个布隆过滤器去重结构,布隆过滤器去重结构在内存中申请有一个位数组,位数组大小为n,将虚拟爬行结点平均分配给实际爬行结点,建立虚拟爬行结点与实际爬行结点的映射关系,采用基于模的哈希运算方式将初始URL任务集映射到各个虚拟爬行结点,并根据虚拟爬行结点与实际爬行结点的映射关系将初始URL任务集映射到对应的实际爬行结点。
本发明的方法还包括以下步骤:
(1)当前爬行结点根据初始URL任务集进入网络爬行状态,并获取待处理URL任务集;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学,未经华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210090259.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种基于模拟退火算法的三维人脸识别方法
- 下一篇:一种三维众核片上系统