理论上Spider不论采用深度优先策略还是广度优先策略,只要时间足够,都可以把整个互联网上的网页抓取一遍。但是搜索引擎本身的资源也是有限的,快速抓取全互联网有价值的页面只是一种奢望而已,所以搜索引擎的Spider不是只使用一种策略无限地抓取新页面,而是采用两种策略相结合的方式来进行抓取。一般Spider可以在域名级别的页面使用广度优先抓取策略,尽可能地收集更多的网站。在网站内页级别一般会根据网站的权重综合使用广度和深度优先抓取策略,也就是说网站的权重越高,抓取量也会越大,刚上线的网站可能只会被抓一个首页。这也是很多新网站在一定时间内,在搜索引擎中只被索引首页的原因之一。
上面讨论的两个策略是站在Spider只是单纯想抓取全互联网数据的基础上,所需要选择的策略。实际在搜索引擎中,虽然Spider在尽力保证抓取页面的全面性,但是由于自身资源有限,所以在尽力抓取全网的同时,还要考虑对重要页面的优先抓取。这个“重要页面”的定义应该是指在互联网中比较重要的页面,该页面内容应该具有影响力比较大、需要了解该内容的网民比较多或时效传播性比较强的特点。体现到抓取策略上,就是这个页面的导入链接很多,或者是权重高的大站中的网页。总结来说,就是两个策略:重要网页优先抓取策略和大站链接优先抓取策略。
(1)重要页面优先抓取策略
一般认为页面的重要性,除了受寄主站点本身的质量和权重影响以外,就看导入链接的多少和导入链接的质量了。Spider抓取层面上的“重要页面”一般由导入的链接来决定。在前面所讨论的抓取策略中,Spider一般都会把新发现的未抓取过的URL依次放到待抓取URL队列的尾端,等待Spider按顺序抓取。在重要页面优先抓取的策略中就不是这样的了,这个待抓取URL队列的顺序是在不断变化的。排序的依据一般是:页面获得的已抓取页面链接的多少和链接权重的高低。
(2)大站优先策略
大站优先策略,这个思路很简单。被搜索引擎认定为“大站”的网站,一定有着稳定的服务器、良好的网站结构、优秀的用户体验、及时的资讯内容、权威的相关资料、丰富的内容类型和庞大的网页数量等特征,当然也会相应地拥有大量高质量的外链。也就是在一定程度上可以认定这些网站的内容就可以满足相当比例网民的搜索请求,搜索引擎为了在有限的资源内尽最大的努力满足大部分普通用户的搜索需求。
一般就会对大站进行“特殊照顾”。因此大家可以看到新浪、网易类网站上自主发布的内容几乎都会被百度秒收,因为百度搜索的Spider在这些网站上是7×24小时不间断抓取的。如果有新站的链接出现在这些网站的重要页面上,也会相应地被快速抓取和收录。曾经有朋友试验新站秒收的策略:把新站的链接推到一些大站的首页,或挂到大站首页所推荐的页面中,效果还是很不错的。
这两个策略与前面所讨论的广度优先策略和深度优先策略相结合的抓取方式是有共通点的。比如,从另一个角度来看,如果Spider按照前两个策略抓取,一个页面获得的导入链接越多,被提前抓到的几率就越大,也就是和重要页面优先抓取是趋同的;在Spider资源有限的情况下广度优先策略和深度优先策略的结合分配本身就会以站点的大小进行区别对待,大网站的页面有着先天的高重要程度,往往也容易获得更多的链接支持。所以宏观来看,这几个策略在抓取表现上有相近之处,在实际的抓取过程中相辅相成。
相对于整个互联网的网页来说,Spider的资源再充足也是有限的,所以优秀的Spider程序应该首先保证对重要网页的抓取,然后才是尽力抓取尽可能全的互联网网页信息。由此也可以看出依靠外部链接来引导Spider和提升网站权重,以及依靠内容长期运营网站权重的重要性。