爬虫质量的评价标准
如果从搜索引擎用户体验的角度考虑,对爬虫的工作效果有不同的评价标准,其中主要的 3 个标准是:抓取网页的覆盖率、抓取网页时新性及抓取网页重要性。如果这 3 方面做得好,则搜索引擎用户体验必定好。
对于现有的搜索引擎来说,还不存在哪个搜索引擎有能力将互联网上出现的所有网页都下载并建立索引,所有搜索引擎只能索引互联网的一部分。而所谓的抓取覆盖率指的是爬虫抓取网页的数量占互联网所有网页数量的比例,覆盖率越高,等价于搜索引擎的召回率越高,用户体验越好。
索引网页和互联网网页对比
抓取到本地的网页,很有可能已经发生变化,或者被删除,或者内容被更改,因为爬虫抓取完一轮需要较长的时间周期,所以抓取到的网页当中必然会有一部分是过期的数据,即不能在网页变化后第一时间反应到网页库中。所以网页库中过期的数据越少,则网页的时新性越好,这对用户体验的改善大有裨益。
如果时新性不好,搜索到的都是过期数据,或者网页被删除,用户的内心感受可想而知。
互联网尽管网页繁多,但是每个网页的差异性都很大,比如来自腾讯、网易新闻的网页和某个作弊网页相比,其重要性犹如天壤之别。如果搜索引擎抓取到的网页大部分是比较重要的网页,则可以说明在抓取网页重要性方面做得比较好。这方面做的越好,则越说明搜索引擎的搜索精度越高。
通过以上 3 个标准的说明分析,可以将爬虫研发的目标简单描述如下:在资源有限的情况下,既然搜索引擎只能抓取互联网现存网页的一部分,那么就尽可能给选择比较重要的那部分页面来索引;对于已经抓取到的网页,尽可能快的更新内容,使得索引网页和互联网对应页面内容同步更新;在此基础上,尽可能扩大抓取范围,抓取到更多以前无法发现的网页。
3 个“尽可能”基本说清楚了爬虫系统为增强用户体验而奋斗的目标。
大型商业搜索引擎为了满足 3 个质量标准,大都开发了多套针对性很强的爬虫系统。以Google为例,至少包含两套不同的爬虫系统:一套被称为Fresh Bot,主要考虑网页的时新性,对于内容更新频繁的网页,目前可以达到以秒计的更新周期;另外一套被称之为Deep Crawl Bot,主要针对更新不是那么频繁的网页抓取,以天为更新周期。
除此之外,Google投入了很大精力研发针对暗网的抓取系统,