一、了解爬行器或爬行蜘蛛
我们知道,之所以我们能够在百度、谷歌中很快地找到我们需要的信息,就是因为在百度和谷歌这样的搜索引擎中,已经预先为我们收录了大量的信息。不管是哪方面的信息,不管是很早以前的,还是最近更新的,都能够在搜索引擎中找到。
那么,既然搜索引擎需要预先收录这些大量的信息,当然它就必须到这个浩瀚的互联网世界去抓取这些信息。据报道,全球网民已经达到十几亿的规模了,那么这十几亿网民中,可想而知,每天能够产生多少信息?搜索引擎又有何能耐把这么多的信息收录在自己的信息库中?它又如何做到以最快的速度取得这些信息的呢?
这个便是通过所谓的爬行器(crawler)或叫爬行蜘蛛(spider)来进行的。称谓很多,但指的都是同一种东西,都是描述搜索引擎派出的蜘蛛机器人在互联网上探测新信息。而各个搜索引擎对自己的爬行器都有不同的称谓:百度的叫 Baiduspider;Google的叫Googlebot;MSN的叫MSNbot;Yahoo则称为Slurp。这些爬行器其实是用计算机语言编制的程序,用以在互联网中不分昼夜的访问各个网站,将访问的每个网页信息以最快的速度带回自己的大本营。
二、搜索引擎每次能带回多少信息
要想这些爬行蜘蛛每次能够最大最多的带回信息,仅仅依靠一个爬行蜘蛛在互联网上不停的抓取网页肯定是不够的。所以,搜索引擎通过都会派出很多个爬行蜘蛛,让它们通过浏览器上安装的搜索工具栏,或网站主从搜索引擎提交页面提交而来的网站为入口开始爬行,爬行到各个网页,然后通过每个网页的超级链接进入下一个页面,这样不断的继续下去……
搜索引擎并不会将整个网页的信息全部都取回来,有些网页信息量很大,搜索引擎都只会取得每个网页最有价值的信息,一般如:标题、描述、关键词等。所以,通常只会取得一个页面的头部信息,而且也只会跟着少量的链接走。百度大概一次最多能抓走120KB的信息,谷歌大约能带走100KB左右的信息,因此,如果想你的网站大部分网页信息都被搜索引擎带走的话,那么就不要把网页设计得太长,内容太多。而是应该多设计一些页面,页面内容相应少些,网页之间的的链接设置好。这样,对于搜索引擎来说,既能够快速阅读,又能够带走一个网页几乎所有的信息。
三、蜘蛛们是如何爬行的?
所有的蜘蛛的工作原理都是首先从网络中抓取各种信息回来,放置于数据仓库里。为什么称为数据仓库?因为此时的数据是杂乱无章的,还是胡乱的堆放在一起的。因此,此时的信息也是不会出现在搜索结果中的,这就是为什么有些网页明明有蜘蛛来访问过,但是在网页中还不能找到结果的原因。
搜索引擎将从网络中抓取回来的所有资料,然后通过关键字描述等相关信息进行分门别类整理,压缩后,再编类到索引里,还有一部分抓取回来经过分析发现无效的信息则会被丢弃。只有经过编辑在索引下的信息,才能够在搜索结果中出现。最后,搜索引擎则经过用户敲击进的关键字进行分析,为用户找出最为接近的结果,再通过与之关联度最为接近到最不接近为序排列下来,呈现在最终用户眼前。
四、重点介绍Google搜索引擎
Google搜索引擎使用两个爬行器来抓取网页内容,分别是:Freshbot和Deepbot。深度爬行器 (Deepbot)每月执行一次,其受访的内容在Google的主要索引中,而刷新爬行器(Freshbot)则是昼夜不停的在网络上发现新的信息和资源,之后再频繁地进行访问和更新。因此,一般Google第一次发现的或比较新的网站就在Freshbot的名单中进行访问了。
Freshbot的结果是保存在另一个单独的数据库中的,由于Freshbot是不停的工作,不停的刷新访问内容,因此,被它发现或更新的网页在其执行的时候都会被重写。而且这些内容是和Google主要索引器一同提供搜索结果的。而之前某些网站在一开始被 Google收录,但是没几天,这些信息就在Google的搜索结果中消失了,直到一两个月过去了,结果又重新出现在Google的主索引中。这就是由于 Freshbot在不停的更新和刷新内容,而Deepbot要每月才出击一次引起的,所以这些在Freshbot里的结果还没有来得及更新到主索引中,又被新的内容代替掉。直到Deepbot重新来访问这一页,收录才真正进入Google的主索引数据库中!