网络爬虫控制方法.pdf

上传人:1*** 文档编号:6183725 上传时间:2019-05-18 格式:PDF 页数:6 大小:360.61KB
返回 下载 相关 举报
摘要
申请专利号:

CN201410002332.3

申请日:

2014.01.03

公开号:

CN104657399A

公开日:

2015.05.27

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 17/30申请日:20140103|||公开

IPC分类号:

G06F17/30

主分类号:

G06F17/30

申请人:

广西科技大学

发明人:

郑庆华; 欧阳浩

地址:

545006广西壮族自治区柳州市东环路268号

优先权:

专利代理机构:

柳州市集智专利商标事务所45102

代理人:

黄有斯

PDF下载: PDF下载
内容摘要

本发明公开了一种网络爬虫控制方法,涉及计算机网络领域。现有已知的建立在HADOOP模型的分布式网络爬虫系统只能通过重复建立和删除文件来进行文件更新,本发明采用分布式哈希表管理分布式网址文件,通过网址索引表快速找到网址具体读写位置,可以实现对网址文件进行部分更新和快速更新,不需要重复建立和删除文件,还可以控制网络爬虫对排名靠前的网址进行抓取,减轻了服务器的负担,减少资源占用,提高效率。

权利要求书

权利要求书
1.  一种网络爬虫控制方法,其特征在于包括以下步骤:
a)建立一个分布式网址哈希表,哈希值分为两段,一段为域名的哈希值,另一段为路径及文件名的哈希值,参与抓取网页的每一个服务器取一个整数作为一个节点值加入到整个分布式哈希表中,将所述网址哈希表分为多个区段,网址文件按网址哈希值分为相应的多个区段,每个区段的网址文件分别保存到一个所述服务器上;构造一个使具有相同域名的网址对应同一个所述区段的映射; 
b)所述服务器选取本服务器上保存的网址,提供给网络爬虫进行抓取;
c)网络爬虫把抓取到的网页信息返回给提供网址的所述服务器;
d)所述服务器对网络爬虫返回的网页信息进行分析,如果网址状态有变化的,根据返回的网址信息对本服务器已保存的网址信息进行更新;
e)所述服务器从抓取网页信息中分析得到的未收录网址,如果属于本服务器保存的网址文件区段的,将所述未收录网址保存至本服务器网址文件中;如果所述未收录网址所属区段保存在其他服务器上的,将所述未收录网址传送至保存所属区段网址文件的服务器;
f)所述服务器对其他服务器传送来的网址进行分析,如果是本服务器已收录网址的,对于网址状态有变化的,根据所述网址信息对所述服务器上已保存的网址信息进行更新;对于网址状态无变化的,不作处理;如果是本服务器未收录网址的,将所述未收录网址保存至本服务器网址文件中。

2.  根据权利要求1所述的网络爬虫控制方法,其特征在于步骤e所述网址传送至保存所属区段的服务器包括:
先暂存所述未收录网址,再批量传送至保存所属区段的服务器,如果有多个网址属于同一个域名,把所述多个网址用同一个消息传送。

3.  根据权利要求1或2所述的网络爬虫控制方法,其特征在于步骤b包括:
建立一个分布式网址排名分值哈希表,每一个服务器取一个整数作为一个节点值加入到整个分布式分值哈希表中,将所述分值哈希表分为多个区段;
构造一个使网址排名分值的哈希值与网址排名次序相一致的映射;
设定本轮要抓取的网页数N;
每个所述服务器从本服务器上保存的网址排名分值中挑选N个靠前的排名分值,将所有所述服务器提供的排名分值按分值哈希值分为相应的多个区段,每个区段的分值分别保存到一个所述服务器上,建立一个分布式分值表; 
在所述分布式分值表中从高分值区段向低分值区段依次累加分值个数,找到排名第N位的分值所在的分值区段,将该分值区段从高到低进行排序,找到排名第N位的分值,作为本轮抓取的阈值分,广播至所有所述服务器;
每个所述服务器选取本服务器保存的分值高于阈值分的网址,提供给网络爬虫进行抓取。

4.  根据权利要求1或2所述的网络爬虫控制方法,其特征在于步骤a和步骤b之间设有步骤a1:
每个所述服务器为本服务器保存的网址建立一个包括网址路径及文件名哈希值和网址具体读写位置的网址索引表,所述服务器根据网址路径及文件名哈希值,通过网址索引表快速寻找到网址的具体读写位置来更新网址信息。

5.  根据权利要求3所述的网络爬虫控制方法,其特征在于步骤a和步骤b之间设有步骤a1:
每个所述服务器为本服务器保存的网址建立一个包括网址路径及文件名哈希值和网址具体读写位置的网址索引表,所述服务器根据网址路径及文件名哈希值,通过网址索引表快速寻找到网址的具体读写位置来更新网址信息。

说明书

说明书网络爬虫控制方法
技术领域
本发明涉及计算机网络领域,特别是涉及网络爬虫领域。
背景技术
为了抓取当今互联网上数量超过千亿规模的网页,单独一台服务器上的网络爬虫已经不能承担如此重任,因此,大规模爬虫系统基本上都是构建在分布式系统基础之上的。现有已知的大规模爬虫系统基本上是建立在HADOOP模型框架之内。爬虫的控制主要是对网址的状态管理,包括创建和更新,在每次抓取网页之后,都需要对已有的网址信息(如抓取成功、被重定向、抓取失败、未抓取等待等)进行更新。现有技术的主要问题是,HADOOP使用的文件系统设计的目标是大规模的数据处理,文件一旦创建,只能在文件后部追加数据,而不能对文件中已有的数据进行修改,由此带来的问题便是,每轮抓取后,虽然需要更新的信息只占文件的一部分,但由于不能对已有的文件进行更新,只能重建上千亿的网址信息:在HADOOP上先建立一个新的文件、再删掉原来旧的文件,这相当于对全部信息进行更新。这些文件包含大规模的数据,不断地建立、删除文件使服务器承担大量擦除、读写任务,占用大量的系统资源,效率非常低下。
发明内容
本发明的目的是提供一种可以对网址文件进行部分更新的网络爬虫控制方法。
为实现上述目的,本发明采用如下方案:建立一个分布式网址哈希表,哈希值分为两段,一段为域名的哈希值,另一段为路径及文件名的哈希值,参与抓取网页的每一个服务器取一个整数作为一个节点值加入到整个分布式哈希表中,将所述网址哈希表分为多个区段,网址文件按网址哈希值分为相应的多个区段,每个区段的网址文件分别保存到一个所述服务器上;构造一个使具有相同域名的网址对应同一个所述区段的映射;服务器选取本服务器上保存的网址,提供给网络爬虫进行抓取;网络爬虫把抓取到的网页信息返回给提供网址的服务器;服务器对网络爬虫返回的网页信息进行分析,如果网址状态有变化的,根据返回的网址信息对本服务器已保存的网址信息进行更新;服务器从抓取网页信息中分析得到的未收录网址,如果属于本服务器保存的网址文件区段的,将所述未收录网址保存至本服务器网址文件中;如果所述未收录网址所属区段保存在其他服务器上的,将网址传送至保存所属区段网址文件的服务器;所述服务器对其他服务器传送来的网址进行分析,如果是本服务器已收录网址的,对于网址状态有变化的,根据所述网址信息对所述服务器上已保存的网址信息进行更新;对于网址状态无变化的,不作处理;如果是本服务器未收录网址的,将所述未收录网址保存至本服务器网址文件中。
当将所述未收录网址传送至保存所属区段网址文件的服务器时,可以在每次分析后传送;也可以先暂存后批量传送,例如在每轮抓取结束后传送,其中,如果多个网址属于同一个域名的,对所述多个网址用同一个消息传送。
本发明进一步的方案是控制网络爬虫仅对排名靠前的网址进行抓取,具体是,所述服务器选取本服务器上保存的网址的步骤包括:建立一个分布式网址排名分值哈希表,每一个服务器取一个整数作为一个节点值加入到整个分布式分值哈希表中,将所述分值哈希表分为多个区段;构造一个使网址排名分值的哈希值与网址排名次序相一致的映射;设定本轮要抓取的网页数N;每个服务器从本服务器上保存的网址排名分值中挑选N个排名靠前的分值,其中可以根据需要对挑选的网址做进一步筛选,例如只选在一定期限内没有抓取过的网址,将所有服务器提供的排名分值按分值哈希值分为相应的多个区段,每个分值区段保存到一个服务器上,建立一个分布式分值表;从高分值区段向低分值区段依次累加分值个数,找到排名第N位的分值所在的分值区段,将该分值区段从高到低进行排序,找到排名第N位的分值,作为本轮抓取的阈值分,广播至所有所述服务器;每个服务器选取本服务器保存的分值高于阈值的网址,如果有进一步的筛选条件,则只选取分值高于阈值的网址且符合筛选条件的网址。
本发明另一个进一步的方案是,在建立一个网址哈希表后,还建立一个网址索引表,每个服务器为保存在本服务器的网址建立一个包括网址路径及文件名哈希值和网址具体读写位置的网址索引表,服务器根据网址路径及文件名哈希值,通过网址索引表快速寻找到网址的具体读写位置来更新网址信息。
本发明可以带来如下技术效果:采用分布式哈希表把网址文件分布到各服务器并对网址文件进行管理,此种模式可以对文件进行修改,因而可以实现对网址文件进行部分更新,无需对全部网址文件进行更新或重写,避免HADOOP模型中需要重建上千亿的网址状态文件的弊端,减轻了服务器的负担,减少资源占用,提高了效率;批量传送网址信息时,把属于同一个域名的多个网址信息用一个消息共同传送到相应的服务器中,可以减少发送次数,提高效率;采用分布式哈希表对分布在各服务器的网址排名分值进行管理,挑选出排名靠前的网址,提供给爬虫服务器,可以实现仅对排名靠前的网址进行抓取;当服务器对分析后的网址信息进行暂存,然后再批量更新时,如果在文件中依次查询网址名称来寻找该网址,文件中网址数量巨大,会导致寻找效率极为低下,本发明为网址的具体读写位置建立索引,根据网址中路径及文件名的哈希值,通过网址索引表可以迅速找到网址的具体读写地址进行更新,提高更新效率。
具体实施方式
下面结合实施例对本发明作详细说明。
建立一个分布式哈希表,用于保存计算得到的网址哈希值。哈希值设计为长度为128位的整数,分为2段,每段64位,前段为域名的哈希值,后段为路径及文件名的哈希值,如下表所示:
 
参与抓取网页的每一个服务器取一个64位随机整数作为一个节点值加入到分布式哈希表中,将网址哈希表分为多个区段,网址文件按网址哈希值分为相应的多个区段,每个区段的网址文件保存到相邻两个节点中节点值较大的服务器上;构造一个哈希映射,要求使具有相同域名的网址对应同一个所述区段,这样可以实现相同域名的网页都由同一台服务器来进行抓取。
建立一个网址索引表,每个服务器为保存在本服务器的网址建立一个包括网址路径及文件名哈希值和网址具体读写位置的网址索引表,服务器根据网址路径及文件名哈希值,通过网址索引表快速寻找到网址的具体读写位置来更新网址信息。
建立一个分布式网址排名分值哈希表,每一个服务器取一个整数作为一个节点值加入到整个分布式分值哈希表中,将所述分值哈希表分为多个区段;构造一个使网址排名分值的哈希值与网址排名次序相一致的映射;设定本轮要抓取的网页数N;每个服务器从本服务器上保存的网址中挑选N个排名靠前的分值,然后将所有服务器提供的分值按分值哈希值分为相应的多个区段,每个区段的分值分别保存到一个服务器上,建立一个分布式分值表;然后从高分值区段向低分值区段依次累加分值个数,找到排名第N位的分值所在的分值区段,将该区段的分值从高到低进行排序,找到排名第N位的分值,作为本轮抓取的阈值分,广播至所有所述服务器;每个服务器只选取本服务器保存的分值高于阈值的未抓取网址,提供给网络爬虫。
网络爬虫把抓取到的网页信息返回给提供网址的服务器;服务器对网络爬虫返回的网页信息进行分析,如果网址状态有变化的,通过网址索引表快速找到网址的具体读写位置,根据返回的网址信息对本服务器已保存的网址信息进行更新;服务器从抓取网页信息中分析得到的未收录网址,如果属于本服务器保存的网址文件区段的,将所述未收录网址保存至本服务器网址文件中;如果网址所属区段保存在其他服务器上的,在本轮抓取结束后,把网址传送至保存所属区段的服务器,其中,如果多个网址属于同一个域名的,对所述多个网址用同一个消息共同传送;所述服务器对其他服务器传送来的网址进行分析,如果是本服务器已收录网址的,对于网址状态有变化的,通过网址索引表快速找到网址的具体读写位置,根据所述网址信息对本服务器上已保存的网址信息进行更新;对于网址状态无变化的,不作处理;如果是本服务器未收录网址的,将未收录网址保存至本服务器网址文件中。 

网络爬虫控制方法.pdf_第1页
第1页 / 共6页
网络爬虫控制方法.pdf_第2页
第2页 / 共6页
网络爬虫控制方法.pdf_第3页
第3页 / 共6页
点击查看更多>>
资源描述

《网络爬虫控制方法.pdf》由会员分享,可在线阅读,更多相关《网络爬虫控制方法.pdf(6页珍藏版)》请在专利查询网上搜索。

本发明公开了一种网络爬虫控制方法,涉及计算机网络领域。现有已知的建立在HADOOP模型的分布式网络爬虫系统只能通过重复建立和删除文件来进行文件更新,本发明采用分布式哈希表管理分布式网址文件,通过网址索引表快速找到网址具体读写位置,可以实现对网址文件进行部分更新和快速更新,不需要重复建立和删除文件,还可以控制网络爬虫对排名靠前的网址进行抓取,减轻了服务器的负担,减少资源占用,提高效率。。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1