由于Spider所要抓取的网页太多,如果只有单一的一个Spider进行抓取作业,那么将需要非常巨大的计算能力,同时也会消耗更多的抓取时间。这里就引入了分布式计算的概念,把庞大的抓取作业任务分割成很多较小的部分,使用大量合理计算能力的服务器来承载这个任务,以完成对全互联网网页的快速抓取。现在大型搜索引擎都会使用分布式计算,同样Spider也会使用分布式计算,可以称这种Spider为分布式Spider,它遵循了分布式计算的主要规则,根据这些规则也可以解释现在站长和SEO人员关心的“降权蜘蛛”问题。
分布式计算有很多种计算方式,这里简单介绍Spider应有的分布式抓取策略。涉及分布式计算,也就涉及任务分发机制。整个分布式Spider系统需要保证所有Spider之间不会有重复抓取的情况发生,也就是要为各个Spider分配好抓取范围。当一个Spider发现一个新的URL时,会判断该URL是否在自己的抓取范围之内,如果在自己的抓取范围之内,就会把该URL放到自己待抓取URL队列中;如果不在自己的抓取范围之内,就会把该URL提交给上级服务器,由上级服务器分发给相应的Spider,并加入到该Spider的待抓取URL列表中。
要确保所有Spider的作业不重复,就要求每个Spider都有自己的抓取范围,也就是说每个Spider都会只抓取指定类型的网页。这里就要看搜索引擎是如何对网页进行分类的了,常规网页的分类方法有三种,第一种是按照优秀站点、普通站点、垃圾站点、降权站点和屏蔽(被K)站点等站点质量等级分类;第二种是按照网站首页、网站目录页、网站内容页、网站专题页、视频、图片、新闻、行业资料、其他类型的网络文件(PDF、Word、Excel等)等网页类型分类;第三种是按照站点或网页内容所在行业分类。在真正的Spider系统设计中,为了减少搜索引擎
和被抓取站点服务器之间的握手次数(影响抓取效率的重要因素),站点级别相关的分类应该是被优先使用的。
Spider会严格按照自己的作业任务进行作业,由以上分类可以看出,对于大部分中小网站一般都会有一个固定的Spider进行抓取,所以很多站长和SEO人员在分析网站日志时所发现的百度Spider经常都是同- lP段的,但是不同网站之间发现的Spider的lP段并不同。理论上,如果参与研究的站点比较多,类型比较丰富,就可以比较容易地分辨出百度Spider的任务分发模式,这样通过分析日志中百度来访Spider的IP就可以判断出自己的站点在百度搜索眼中是什么样的。
针对第一种分类方式,就可能出现某- IP段的Spider只抓取权重高的网站,某- IP段的Spider只抓取已被搜索引擎降权或者屏蔽的网站。如果真的是采用这种任务分发方式,那么网络上所传的“降权蜘蛛”就可能存在。不过并不是因为这个Spider的到来使得网站降权或者屏蔽,而是因为该网站已经被百度降权或者屏蔽,百度服务器才会把对该站点的抓取任务分发给这个Spider。如果百度使用这种分布式的Spider,那么网络上对百度Spider各lP段特性的总结也是比较有意义的,不过不可全信,因为百度不可能只使用一种任务分发模式。这也可以成为站长和SEO人员的研究方向,即使可能最终一无所获。因为搜索引擎对网站和网页的分类有太多纬度了,新抓取和再次抓取所使用的纬度就可能不同,很可能各个纬度都是综合使用的。
如图所示为某网友对百度Spider所使用的lP的分析,有兴趣的朋友可以百度搜索一下“百度蜘蛛IP段详解”,有不少类似的总结,看看就好,不可以绝对当真。