互联网的动态性是其显著特征,随时都有新出现的页面,页面的内容被更改或者本来存在的页面被删除。对于爬虫来说,并非将网页抓取到本地就算完成任务,也要体现出互联网的这种动态性。本地下载的网页可被看做是互联网页面的“镜像”,爬虫要尽可能保证其一致性。可以假设一种情况:某个网页已被删除或者内容做出重大变动,而搜索引擎对此惘然无知,仍然按其旧有内容排序,将其作为搜索结果提供给用户,其用户体验之糟糕不言而喻。所以,对于已经抓取过的网页,爬虫还要负责保持其内容和互联网页面的同步,这取决于爬虫所采用的网页更新策略。
网页更新策略的任务是要决定何时重新抓取之前已经下载过的网页,以尽可能使得本地下载网页和互联网原始页面内容保持一致。常用的网页更新策略有3种:历史参考策略、用户体验策略和聚类抽样策略。
历史参考策略
历史参考策略是最直观的一种更新策略,它建立于如下假设之上:过去频繁更新的网页,那么将来也会频繁更新。所以,为了预估某个网页何时进行更新,可以通过参考其历史重要更新情况来做出决定。
这种方法往往利用泊松过程来对网页的变化进行建模,根据每个网页过去的变动情况,利用模型预测将来何时内容会再次发生变化,以此来指导爬虫的抓取过程。但是不同方法侧重不尽相同,比如有的研究将一个网页划分成不同的区域,抓取策略应该忽略掉广告栏或者导航栏这种不重要区域的频繁变化,而集中在主题内容的变化探测和建模上。
用户体验策略
一般来说,搜索引擎用户提交查询后,相关的搜索结果可能成千上万,而用户没有耐心查看排在后面的搜索结果,往往只查看前3页搜索内容。用户体验策略就是利用搜索引擎用户的这个特点来设计更新策略的。
这种更新策略以用户体验为核心,即使本地索引的网页内容是过时的,但是如果 不影响用户体验,那么晚些更新这些过时网页也未尝不可。所以判断一个网页何时更新为好,取决于这个网页的内容变化所带来搜索质量的变化(往往采用搜索结果排名的变化来衡量),影响越大的网页,则应该越快更新。
用户体验策略保存网页的多个历史版本,并根据过去 每次内容变化对搜索质量的影响,得出一个平均值,以此作为 判断爬虫重抓该网页时机的参考依据,对于影响越厉害的网页,则越优先调度重新抓取。
聚类抽样策略
聚类抽样策略认为:网页具有一些属性,根据这些属性可以预测其更新周期,具有相似属性的网页,其更新周期也是类似的。于是,可以根据这此属性将网页归类,同一类别内的网页具有相同的更新频率。为了计算某个类别的更新周期,只需对类别内网页进行采样,以这些被采样网页的更新周期作为类别内所有其他网页的更新周期。与之前 叙述的两种方法相比较,这种策略一方面无须为每个网页保存历史信息;另一方面,对于新网页,即使没有历史信息,也可以根据其所类别来对其进行更新。