在我的上海网站优化博客中,说明了一下我对web crawler的学习体会,今天我继续分享一下对web crawler的理解与体会,要分享的学习体会是网站选择策略。
以当前规模的web环境下,即使是大型搜索引擎,也难免只能抓取到其海量内容的一小部分。一份2005年的研究报告指出,一般的大型搜索引擎,仅仅索引了万维网中40%-70%的web信息量。因为爬虫只是下载了web页面的一小部分,这就迫切希望爬虫能更多的下载到相关的web页面,而不是一个随机的样板页面。
这个就可以看出给web页面做相关优先级措施的重要性了。页面的重要性是其内在质量的一些集合,它的权重,可以从连接、访问以及网址中体现出来。设计一个网站选择策略,有其自己得难度:它必须获取部分的信息,而网站的所有页面,在爬取过程中是不知道的。
Cho et al第一次尝试了爬行调度的策略。数据是从stanford.edu网站中爬取的18万个页面,其模拟爬行是通过不同的策略来实现的。主要的几个有,广度优先,反链数以及页面排名算法。他得出一个结论,如果早期通过下载高页面排名的页面来爬取,那部分页面排名策略就更好一点,然后是宽度优先和反链数。当然,这个结果的得出只是依据一个单一的域名。
有专家尝试爬取32.8亿个页面,采用广度优先策略,他们发现,广度优先爬取的页面拥有更高的Pagerank。他们给出的解释是,重要的页面一般会有来自众多网站的链接指向他们,而这些链接会被更早的发现。也有专家通过爬取4000万张页面来进行模拟实验,他们想测试广度优先和深度优先,随机排序以及万能策略。他们进行这些对比是基于在部分爬取计算出的PageRank如何接近真正的PageRank值。
也有专家采用OPIC的算法来进行模拟,即On-line Page Importance Computation算法。
Daneshpajouh et al设计了一个基于寻找优秀种子的算法。他们的方法是通过从不同社区网站中采用少量迭代爬取高PageRank的页面。使用这个新办法,可以通过之前爬取的页面图表中抽取出更好的种子,而再用这些种子进行新的爬取就显得非常高效。