Google工程师解释Googlebot抓取网页的原理

来源:互联网 发布:用win10引导ubuntu 编辑:程序博客网 时间:2024/06/01 16:18

引自:http://www.kenwong.cn/post/how-googlebots-crawl-webpages.html

  前几天我们报道了Google的Matt Cutts确认了AdSense的Mediabot的确是会帮助Googlebot抓取网页的消息,但有部分人不相信Matt Cutts,或者不相信他能代表Google官方。作为Matt Cutts的blog的一名忠实读者,我觉得完全没必要花费篇幅再去特别说明Matt Cutts的权威性。我想说的是,Matt Cutts在是Google品质管理部门的一名高级软件工程师,外界所知的是他负责研发阻止Spam与恶性控制排名的技术。因此,信不信当然由你。

  其实上次Matt所透露的仅仅是其中一方面的内容。今天,Matt再次写了一篇非常详细的文章,解释了Google的各种bot是怎样抓取网页的,以及Google最新的BigDaddy在抓取网页方面有什么新的变化等等,内容非常的精彩,所以和大家分享一下。

  首先要介绍的是Google的“crawl caching proxy”(爬行缓存代理)。Matt举了一个ISP与用户的例子来说明它。用户上网时,总是先通过ISP获取网页内容,然后ISP就会把用户访问过的网页缓存起来备用。比如说,当用户A访问了www.kenwong.cn,那么中国电信(或网通等)就会把“幻灭的麦克风”发送给用户A,然后将“幻灭的麦克风”缓存起来,当用户B在下一秒钟里再访问www.kenwong.cn,那么中国电信就会把缓存里的“幻灭的麦克风”发送给用户B,这样就能节省了带宽。

  正如本站之前所报道的那样,Google最新的软件层面的升级(转移至BigDaddy)已经接近完成,因此升级后的Google各方面的能力都将得到加强。这些加强包括了更智能化的googlebot爬行、改良的规范性以及更好的收录网页能力。而在Googlebot爬行抓取网页方面,Google也采取了节省带宽的方法。Googlebot也随着BigDaddy的升级而得到了升级。新的Googlebot已经正式支持了gzip编码,所以如果你的网站开启了gzip编码功能,那么就能节省Googlebot爬行你的网页时所占的带宽。

  除了改良的Googlebot外,升级后的Google将会采用上面所说到的crawl caching proxy来抓取网页,以进一步节省带宽。下面是一个示意图,显示了传统的Googlebot是怎样爬行一个网站的:
<script type="text/javascript"><!--google_ad_client = "pub-9416189179052893";google_alternate_color = "FFFFFF";google_ad_width = 468;google_ad_height = 60;google_ad_format = "468x60_as";google_ad_type = "text_image";google_ad_channel ="0040068371";google_color_border = "FFFFFF";google_color_bg = "FFFFFF";google_color_link = "000000";google_color_url = "000000";google_color_text = "000000";//--></script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
点击看大图

  从上图可见,以Googlebot爬行为主,Server A指的是AdSense,而Server N则可以是Google的blogsearch或其它。我们可以看出,同一个网站,Googlebot与AdSense的Mediabot、blogsearch的bot都爬行过了,其中有很多重复的爬行。上图抓取网页的总数一共是23次。我们来看一下升级后的Google所采用的crawl caching proxy又是怎样的情形:

点击看大图

  很明显,因为crawl caching proxy将各种bot的抓取都缓存起来,因此当Googlebot已经抓取过某些网页,而Mediabot或其它bot再次抓取重复的网页时,crawl caching proxy就会发挥作用,直接将缓存里的网页返回给Mediabot等,这样就使得实际爬行次数减少,节省了带宽。

  从Matt的分析可以看出,Google这样做的确是能节省自己及网站的带宽,好处是能让Google的各种bot在一定的时间里爬行更多的网页,以方便收录。我的理解是,虽然好处是相当明显,但坏处也是有的。比如,当一个网站它以AdSense的广告费为生,那么它就需要AdSense的Mediabot不停地光临,以分析它的更新网页的内容,投放更相关的广告。但当这个网站是一个PR值不错的网站,那么Googlebot很可能会天天都来爬行它,这样一来,crawl caching proxy就会把Googlebot的爬行缓存起来,等Mediabot再来爬行的时候,它就直接把缓存的内容返回给Mediabot。这样一来就减少了Mediabot爬行该网站的次数。由于两种bot并不是采用完全相同的工作机制,因此这个网站有可能因此Mediabot的爬行次数的减少而使得显示的AdSense广告的相关性减弱。因此,这种改进有可能带来一定的不公平。

原创粉丝点击