一种采集网页的方法及系统的制作方法

文档序号:6563651阅读:149来源:国知局
专利名称:一种采集网页的方法及系统的制作方法
技术领域
本发明涉及通信及网络领域,特别是涉及一种采集网页的方法及系统。
背景技术
爬虫(也称为crawler、 spider或robot)是搜索引擎中负责数据采集的子系 统。爬虫采集的数据质量的高低直接影响到搜索引擎的搜索结果的质量。
爬虫系统在第一次爬行时,按照一定的策略来决定哪些网页先爬,哪些网 页后爬;之后不断检测已爬过的网页是否被更新,并不断采集新的URL。在爬 虫本轮爬行过程中,先爬行的网页内容(URL不变)可能已经发生了变化,如 果搜索引擎对过期的页面进行索引,并作为某些关键字的搜索结杲显示给用 户,则用户看到的网页内容与预期的页面不符,会很大程度上影响用户感受。 例如某个商店的热门商品拒台的页面,商品频繁地上架下架,如杲爬虫检测 更新速度不快的话,很可能用户搜索mp3播放器得到的页面却显示蛋糕。又如 用户搜索XXX软件,得到的页面却为空白页。
爬虫系统的爬行能力是有限的,而互联网上的页面相对来说是无限的。爬 虫在爬行新的网页的同时,要重新爬行旧的网页,以检测该网页是否被更新, 并告知搜索引擎用新鲜的页面代替不新鲜的页面,维持整个网页集合一定的新 鲜度。
设爬行URL集合为S-(e,,e2,e3,…,eJ,含有N个URL,则单个URL的新
鲜度(freshness)定义为F(ei;t)=pfe,—to date at timet
l_0, otherwise
URL集合S的新鲜度(freshness)定义为F(S;t)-丄f]F(e,;t)
为了使网页集合S的新鲜度最大化,即越接近1越好,现有技术提供了两种采集网页的方法。
现有技术一、固定更新法。即按照第一次采集网页时的顺序,依次检测更 新网页内容。
显然,这种方法无异于重新爬行一遍互联网,每一轮所需爬行的网页数量
巨大,无法在一定时间内全部检测更新所有的网页,进而使得网页集合s的新 鲜度较小,不能根据网页的实际变化情况而变化。
现有技术二、随机更新法。从已釆集的网页集合中随机抽取URL来做检 测更新。
显然,这种方法检测更新的URL具有随机性,不能维持整个网页集合S 的高新鲜度。
综上所述,现有的采集网页的方法不能保证网页集合的高新鲜度。

发明内容
本发明提供一种采集网页的方法及系统,用以解决现有的采集网页的方法 不能保证网页集合的高新鲜度的问题。
本发明方法包括在系统中设定更新周期由短到长的至少两个队列;之后, 包括下列步骤系统根据各个队列的更新周期检测该队列中录入的各个网页链 接地址URL是否超时;以及当检测到URL超时时,判断该URL中的网页内 容是否被更新,若被更新,则将该URL录入比当前所在队列的更新周期次短 的队列;否则将该URL录入比当前所在队列的更新周期次长的队列。
进一步,若URL被录入更新周期最短的队列中,并且当超时时判定该URL 中的网页内容被更新,则将该URL移至所述更新周期最短的队列的队尾;以 及若URL被录入更新周期最长的队列中,并且当超时时判定该URL中的网页 内容未被更新,则将该URL移出系统。
进一步,当系统搜索到新的URL时,将该URL录入系统中设定的任一队 列中。又进一步,当系统搜索到新的URL时,将该URL录入各个队列中更新
周期长度处于中间的队列。当系统搜索到新的URL时,也可将该URL录入各 个队列中更新周期最长的队列。
综上所述,系统将URL从队列的队尾录入;以及系统检测每一队列的队 首URL是否超时。
综上所述,根据每一URL当前的重要性,相应为该URL设定PR值;并 以URL的PR值与预设的阀值的比较结果作为该URL录入特定队列的条件。
本发明系统,包括队列设定单元,用于设定和保存更新周期由短到长的 至少两个队列;更新周期检测单元,用于根据队列的更新周期检测该队列中录 入的URL是否超时,并在检测到URL超时时,将该URL取出并发送到更新 判断单元;更新判断单元,用于判断收到的URL中的网页内容是否被更新, 并将判断结果告知录入单元;录入单元,用于在所述判断结果表明URL中的 网页内^f皮更新时,将该URL录入比当前所在队列的更新周期次短的队列; 在所述判断结果表明URL中的网页内容未被更新时,将该URL录入比当前所 在队列的更新周期次长的队列。
进一步,当系统搜索到新的URL时,所述录入单元将该URL录入队列设 定单元中设定的任一队列中。
综上所述,所述系统还包括PR值设定单元,用于根据每一URL当前的 重要性,相应为该URL设定PR值;并将URL的PR值与预设的阀值的比较 结果输出到录入单元,作为该URL录入特定队列的条件。
本发明有益效果如下
本发明不在釆用固定更新法和随机更新法,而是在系统中设定更新周期由 短到长的至少两个队列;之后,系统才艮据各个队列的更新周期检测该队列中录 入的各个URL是否超时;以及当检测到URL超时时,判断该URL中的网页 内容是否被更新,若被更新,则将该URL录入比当前所在队列的更新周期次 短的队列;否则将该URL录入比当前所在队列的更新周期次长的队列。
这样URL会根据该URL中的网页内容是否被更新,而在更新周期各不相同的队列中不断跳转,即URL中的网页内容更新越频繁,则会被提升到更新 周期更短的队列中;URL中的网页内容更新越不频繁,则会被降低到更新周期 更长的队列中。从而实现了 URL更新周期的自适应,最大限度的利用了爬虫 系统的爬行能力;进而保证网页集合的高新鲜度。


图1为本发明方法步骤流程图; 图2为本发明系统结构示意图。
具体实施例方式
由于爬虫的爬行能力相对于可爬行的网页资源是有限的,重爬所有的网页 的时间可能使得许多页面变为不新鲜。因此,爬虫要利用有限的资源,重爬尽 量少的网页来维持尽量高的新鲜度。对于已爬行的网页,应选择不同的周期去 检测更新它们。
例如如果爬虫只爬行3个网页A、 B、 C,而且A、 B、 C网页的更新时 间各不相同,A—天更新一次,B三天更新一次,C九天更新一次。如现有技 术一提及的固定更新法,重新爬行的顺序将会是A、 B、 C、 A、 B、 C、 A、 B、 C、 A、 B、 C…。而采用合理检测更新策略的顺序应该是A、 A、 A、 B、 A、 A、 A、 B、 A、 A、 A、 B、 C、 A、 A、 A、 B、 A、 A…。
为了使网页集合的新鲜度最大化,系统检测更新URL的周期应由该URL 中的网页内容的更新周期来决定,然而网页内容的更新周期往往是不固定的, 不仅不同网页间的更新周期不相同,即使是同一网页,在某段时间内与另一段 时间内的内容更新周期也会有可能不同。因此需要系统自适应的调整各个URL 的检测更新周期。
本发明提供了一种采集网页的方法,首先,在系统中设定更新周期由短到 长的至少两个队列。之后,参见图l所示,包括下列主要步骤
S1 、系统根据各个队列的更新周期检测该队列中录入的各个URL是否超 时;当检测到超时的URL时(即当检测到有URL到达其对应的更新周期时认 为该URL超时),转入步骤S2。
本发明中,系统将URL录入队列时,从队列的队尾录入;也可从队列的 队首录入。所述录入包括步骤S3和S4中所述的录入,以及搜索到新的URL 时的录入。当系统搜索到新的URL时,可将该URL录入系统中设定的任一队 列;例如将该URL录入各个队列中更新周期长度处于中间的队列;又如 将该URL录入各个队列中更新周期最长的队列。
以从队列的队尾录入为例,当URL被录入队尾时,开始以其所在队列的 更新周期对该URL计时,所以越接近队首的URL越接近超时时间,进而系统 只需检测每一队列的队首URL是否超时。
当系统4佥测到某一队列的队首URL超时时,系统从该URL所在队列中取 出该URL,并转入步骤S2。
52、 判断该URL中的网页内容是否被更新,若被更新,则转入步骤S3; 否则,转入步骤S4。
^断《
根据网页脚本中的更新时间进行判断;或者下载该URL当前的网页内容,并 与之前下栽的该URL的网页内容进行比较,以判断是否被更新。 若净皮更新,则转入步骤S3;否则,转入步骤S4。
53、 将该URL录入比当前所在队列的更新周期次短的队列。
即该URL中的网页内容在该URL当前所在队列的更新周期内进行了更 新,表明该URL与其当前所在队列的更新周期并不匹配,应该缩短该URL的 检测周期,所以将该URL录入比当前所在队列的更新周期次短的队列。
当然,若URL被录入更新周期最短的队列中,并且当超时时判定该URL 中的网页内容净皮更新,则该URL无法再录入更新周期更短的队列,所以将该 URL移至所述更新周期最短的队列的队尾即可。
进一步,本步骤中进行录入操作时,还可增加附加条件。即根据每一URL 当前的重要性,相应为该URL设定PR值,所述PR值在通信及网络领域中用 亍表示优先级信息;并以URL的PR值与预设的阀值的比较结果作为该URL 录入特定队列的条件。例如若想录入更新周期最短的队列,不但要满足URL 中的网页内容被更新,而且还需该URL的PR值大于等于预设的阀值,即该 URL当前具有较高的优先级才能被录入更新周期最短的队列。
S4、将该URL录入比当前所在队列的更新周期次长的队列。
即该URL中的网页内容在该URL当前所在队列的更新周期内未进行更 新,表明该URL与其当前所在队列的更新周期并不匹配,应该加长该URL的 检测周期,所以将该URL录入比当前所在队列的更新周期次长的队列。
当然,若URL-故录入更新周期最长的队列中,并且当超时时判定该URL 中的网页内容未被更新,则该URL无法再录入更新周期更长的队列,所以将 该URL移出系统即可。所述被移出系统的URL将作为新的URL,当再次被采 集进入系统后,按照预设的录入规则录入相应队列(参见步骤S1),重新开始 更新检测。
进一步,本步骤中进行录入操作时,还可增加附加条件。即根据每一URL 当前的重要性,相应为该URL设定PR值;并以URL的PR值与预设的阀值 的比较结果作为该URL录入特定队列的条件。例如若想录入更新周期最长 的队列,不但要满足URL中的网页内容未被更新,而且还需该URL的PR值 小于预设的阀值。即该URL当前具有较低的优先级才能被录入更新周期最长 的队列。
至此本发明方法的概述完毕,以下通过两个实施例具体描述本发明方法。 參方法实施例一、系统搜索到新的URL,将其录入各个队列中更新周期长
度处于中间的队列,并自适应该URL的更新周期。
Ul、首先在系统中设定更新周期由短到长的5个队列,即队列qO的更新
周期为l小时;队列ql的更新周期为5小时;队列q2的更新周期为1天;队
列q3的更新周期为3天;队列q4的更新周期为8天。
之后,以单台爬虫的爬行速度为200个/秒计算,并且认为更新的时间不超 过整个爬行时间的50°/。,则才艮据各个队列的更新周期可计算出各个队列可容纳 的URL的数量
qO的大小=200个/秒x60分x 60秒x50%xl小时=360,000 ql的大小=200个/秒x 60分x 60秒x 50% x 5小时=1,800,000 q2的大小=200个/秒x 60分x 60秒x 50% x 24小时=8,640,000 q3的大小=200个/秒x 60分x 60秒x 50% x 24小时x 3天=25,920,000 q4的大小=200个/秒x 60分x 60秒x 50% x 24小时x8天=69,120,000 L12、系统搜索到新的URL,将其录入各个队列中更新周期长度处于中间 的队列。即将该URL录入队列q2的队尾,并开始以队列q2的更新周期(1 天)对该URL计时。随着队列q2队首的URL不断超时被取出,所述新的URL 被移至队列q2的队首。当所述新的URL被判定超时时,将该URL从队列q2 中取出。
本方法实施例中,由于新的URL初始录入的队列为各个队列中更新周期 长度处于中间的队列,所以可以经过最少次数的循环检测,将该URL录入其 最匹配的队列中,从而达到更好的效果。
U3、系统利用爬虫重新爬4刊皮取出的URL中的网页内容,根据网页脚本 中的更新时间进行判断;或者下载该URL当前的网页内容,并与之前下载的 该URL的网页内容进行比较,以判断是否被更新。
本例中判定该URL中的网页内容未被更新,即表明该URL与其当前所在 队列q2的更新周期(1天)并不匹配,应该加长该URL的检测周期。
L14、将该URL录入队列q3的队尾,并开始以队列q3的更新周期(3天) 对该URL计时。当检测到该URL的计时时间到达3天时,又将该URL从队 列q3中取出,并重复上述L13中的操作。
如此往复,该URL被列入队列q4,当超时时判定该URL中的网页内容未
被更新,则认为该URL中的网页内容更新过于緩'隄,为了节约有限的爬行资 源,无需再将该URL录入更新周期更长的队列,所以将该URL移出系统即可。 待系统再次将该URL作为新搜索到的URL录入队列q2时,重复上述4喿作。
*方法实施例二、系统搜索到新的URL,将其录入各个队列中更新周期最 长的队列,并自适应该URL的更新周期。
L21、与步骤L11相同。
L22、系统搜索到新的URL,将其录入各个队列中更新周期最长的队列, 即将该URL录入队列q4的队尾,并开始以队列q4的更新周期(8天)对该 URL计时。随着队列q4队首的URL不断超时被取出,所述新的URL被移至 队列q4的队首。当所述新的URL被判定超时时,将该URL从队列q4中取出。
L23、系统利用爬虫重新爬行被取出的URL中的网页内容,根据网页脚本 中的更新时间进行判断;或者下载该URL当前的网页内容,并与之前下载的 该URL的网页内容进行比较,以判断是否被更新。
本例中判定该URL中的网页内容被更新,即表明该URL与其当前所在队 列q4的更新周期(8天)并不匹配,应该缩短该URL的检测周期。
L24、将该URL录入队列q3的队尾,并开始以队列q3的更新周期(3天) 对该URL计时。当检测到该URL的计时时间到达3天时,又将该URL从队 列q3中取出,并重复上述L23中的操作。
如此往复,该URL所在的队列不断变化,随之该URL的检测更新周期不 断缩短。从步骤L21中可以看出,队列qO所能容纳的URL数量最少,显然应 该提高进入队列q0中的URL的数量;而且队列q0的更新周期也最短,检测 更新最为频繁,若不严格控制队列qO中URL的数量,则会导致爬虫绝大部分 时间消耗在队列q0的循环更新上。
所以在URL被录入队列q0之前,还可增加附加条件。即根据每一 URL 当前的重要性(上一轮检测时的重要性),相应为该URL设定PR值;并以URL 的PR值与预设的阀值的比较结果作为该URL录入特定队列的条件。例如所
述URL采集自某个人网站,并且该URL中的网页内容为八卦新闻,则该URL 当前的PR值被设定为3 (重要性较低),若预设的阀值为5,比较结杲表明该 URL不符合进入队列qO的附加条件,即使该URL中的网页内容频繁更新,也 不能进入队列q0,只能稳定停留在队列ql。
若URL被录入队列q0中,并且当超时时判定该URL中的网页内容被更 新,则该URL无法再录入更新周期更短的队列,所以将该URL移至队列q0 的队尾即可。
本发明还提供了一种采集网页的系统,参见图2所示,其包括环形相接
的队列设定单元l、更新周期检测单元2、更新判断单元3和录入单元4;进一
步还包括与所述录入单元4相连的PR值设定单元5。
所述队列设定单元1,用于设定和保存更新周期由短到长的至少两个队列。 所述更新周期检测单元2,用于根据队列的更新周期检测该队列中录入的
URL是否超时,并在检测到URL超时时,将该URL取出并发送到更新判断单元3。
所述更新判断单元3,用于判断收到的URL中的网页内容是否被更新,并 将判断结果告知录入单元4。
所述录入单元4,用于在所述判断结果表明URL中的网页内容被更新时, 将该URL录入比当前所在队列的更新周期次短的队列;在所述判断结果表明 URL中的网页内容未被更新时,将该URL录入比当前所在队列的更新周期次 长的队列。或者,用于当系统搜索到新的URL时,将该URL录入队列设定单 元1中设定的任一队列中。
所述PR值设定单元5,用于根据每一URL当前的重要性,相应为该URL 设定PR值(即根据每一 URL当前的重要性,相应为该URL设定优先级);并 将URL的PR值与预设的阀值的比较结果输出到录入单元4,作为该URL录 入特定队列的条件。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发
明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及 其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
权利要求
1、一种采集网页的方法,其特征在于,在系统中设定更新周期由短到长的至少两个队列;之后,包括下列步骤系统根据各个队列的更新周期检测该队列中录入的各个网页链接地址URL是否超时;以及当检测到URL超时时,判断该URL中的网页内容是否被更新,若被更新,则将该URL录入比当前所在队列的更新周期次短的队列;否则将该URL录入比当前所在队列的更新周期次长的队列。
2、 如权利要求l所述的方法,其特征在于,若URL被录入更新周期最短 的队列中,并且当超时时判定该URL中的网页内容被更新,则将该URL移至 所述更新周期最短的队列的队尾;以及若URL被录入更新周期最长的队列中,并且当超时时判定该URL中的网 页内容未被更新,则将该URL移出系统。
3、 如权利要求l所述的方法,其特征在于,当系统搜索到新的URL时, 将该URL录入系统中设定的任一队列中。
4、 如权利要求3所述的方法,其特征在于,当系统搜索到新的URL时, 将该URL录入各个队列中更新周期长度处于中间的队列。
5、如权利要求3所述的方法,其特征在于,当系统搜索到新的URL时, 将该URL录入各个队列中更新周期最长的队列。
6、 如权利要求1至5任一项所述的方法,其特征在于,系统将URL从队 列的队尾录入;以及系统检测每一队列的队首URL是否超时。
7、 如权利要求1至5任一项所述的方法,其特征在于,根据每一URL当 前的重要性,相应为该URL设定PR值;并以URL的PR值与预设的阀值的 比较结果作为该URL录入特定队列的条件。
8、 一种采集网页的系统,其特征在于,包括队列设定单元,用于设定和保存更新周期由短到长的至少两个队列;更新周期检测单元,用于根据队列的更新周期检测该队列中录入的URL 是否超时,并在检测到URL超时时,将该URL取出并发送到更新判断单元;更新判断单元,用于判断收到的URL中的网页内容是否被更新,并将判 断结果告知录入单元;录入单元,用于在所述判断结果表明URL中的网页内容被更新时,将该 URL录入比当前所在队列的更新周期次短的队列;在所述判断结果表明URL 中的网页内容未^^皮更新时,将该URL录入比当前所在队列的更新周期次长的 队列。
9、 如权利要8所述的系统,其特征在于,当系统搜索到新的URL时,所 述录入单元将该URL录入队列设定单元中设定的任一队列中。
10、 如权利要8或9所述的系统,其特征在于,所述系统还包括 PR值设定单元,用于根据每一URL当前的重要性,相应为该URL设定PR值;并将URL的PR值与预设的阀值的比较结果输出到录入单元,作为该 URL录入特定队列的条件。
全文摘要
本发明公开了一种采集网页的方法及系统,用以解决现有的采集网页的方法不能保证网页集合的高新鲜度的问题。本发明方法在系统中设定更新周期由短到长的至少两个队列;之后包括系统根据各个队列的更新周期检测该队列中录入的各个网页链接地址URL是否超时;以及当检测到URL超时时,判断该URL中的网页内容是否被更新,若被更新,则将该URL录入比当前所在队列的更新周期次短的队列;否则将该URL录入比当前所在队列的更新周期次长的队列。本发明系统包括队列设定单元、更新周期检测单元、更新判断单元和录入单元。本发明可保证网页集合的高新鲜度。
文档编号G06F17/30GK101178713SQ200610160748
公开日2008年5月14日 申请日期2006年11月29日 优先权日2006年11月29日
发明者杰 文, 卫 杨, 宁 王 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1