什么是搜索引擎蜘蛛机器人?是如何工作的?

在互联网发展初期,网站相对较少,信息查找比较容易。然而伴随互联网爆炸性的发展,普通网络用户想找到所需的资料简直如同大海捞针,这时为满足大众信息检索需求的专业搜索网站便应运而生了。

现代意义上的搜索引擎的祖先,是1990年由蒙特利尔大学学生Alan Emtage发明的Archie。虽然当时World Wide Web还未出现,但网络中文件传输还是相当频繁的,而且由于大量的文件散布在各个分散的FTP主机中,查询起来非常不便,因此Alan Emtage想到了开发一个可以以文件名查找文件的系统,于是便有了Archie。

Archie工作原理与现在的搜索引擎已经很接近,它依靠脚本程序自动搜索网上的文件,然后对有关信息进行索引,供使用者以一定的表达式查询。由于 Archie深受用户欢迎,受其启发,美国内华达System Computing Services大学于1993年开发了另一个与之非常相似的搜索工具,不过此时的搜索工具除了索引文件外,已能检索网页。

当时,“机器人”一词在编程者中十分流行。电脑“机器人”(Computer Robot)是指某个能以人类无法达到的速度不间断地执行某项任务的软件程序。由于专门用于检索信息的“机器人”程序象蜘蛛一样在网络间爬来爬去,因此,搜索引擎的“机器人”程序就被称为“蜘蛛”程序。

先说说搜索引擎的原理吧。
搜索引擎是把互联网上的网页内容存在自己的服务器上,当用户搜索某个词的时候,搜索引擎就会在自己的服务器上找相关的内容,这样就是说,只有保存在搜索引擎服务器上的网页才会被搜索到。哪些网页才能被保存到搜索引擎的服务器上呢?只有搜索引擎的网页抓取程序抓到的网页才会保存到搜索引擎的服务器上,这个网页抓取程序就是搜索引擎的蜘蛛.

蜘蛛机器人是如何工作的(搜索引擎的工作原理)
你应该知道在搜索引擎结果页面中排得较高是怎样的重要。但是,你的网站还没有排到前三页,并且你也不了解是为什么。有种可能是,蜘蛛人想索引到你的网页时你却把它搞糊涂了。那你怎么能发现这个情况呢?别着急,继续往下看。

你有个很不错的网站,也有很多相关的内容,却总也不能在搜索结果页上排名很高。你也知道,如果你的网站不排在前面几页,查询者很有可能是发现不了这个网页的。你不能理解为什么对google 和别的主要搜索引擎网页不可视。而你竞争对手的网页还没你的好,却排在比你高的位置上。

搜索引擎不是人类。为了处理成百万的包含在万维网上的网页,搜索引擎公司已经几乎完全使得这个程序自动化了。一个软件程序不会像人眼那样看待你的网页。这并不是说你不需要有个可以带给访问者快乐的网站。这意味着你需要意识到搜索引擎“看”你网页时是不一样的,要根据这个安排。

尽管网络很复杂,而且还要迅速处理所有的数据,搜索引擎事实上履行的是短短的操作,以把相关的结果反馈给使用者。这四个操作的每一个都可能出错。这不是说搜索引擎本身自己会出现错误,它可能只是遇到了一些没有程序来处理的东西。或者它被编程的方式来处理一切遇到的东西会产生不理想的效果。

理解搜索引擎是如何操作可以帮你理解什么会发生错误。所有的搜索引擎都是履行四大任务:

网站抓取。搜索引擎发送自动程序,一些时候称为“蜘蛛人”,蜘蛛人用网页超链接结构爬到网页上。根据我们的一些最好估计,搜索引擎蜘蛛人已经爬上了现在网上已有的一边的网页上。
文件检索。蜘蛛人爬到某一个网页后,它的内容要变成一个模板,当使用者询问搜索引擎的时候,会很容易回复。如此,网页就被屯放在一个巨大的紧密管理的组成搜索引擎索引的数据库中。这些索引包括数十亿的文件,不到一秒钟就可以呈现给使用者。
询问程序。当一个使用者使用一个搜索引擎时,引擎检查它的索引以发现与之相匹配的文件。从表面上看起来极为相似的询问会产生很不同的结果。举个例子:搜索“田野和河流杂志”,如果不加引号,google会产生400万多结果。加上引号,google 仅仅反馈19600个结果。这只是搜索者可以用来缩小搜索量并得到相关结果的一个方法。
排名结果。Google不会把所有的19600个结果都显示给你看,而且即使是那样,它也需要一些方法来决定哪些要排在前面。所以搜索引擎运行了一个算法,来计算哪些是与搜索的东西最相关。这些被最先列出来,其余的按相关程度向下排。

现在你对整个过程应该有些印象了。就需要花些时间来近距离看看每个。这个会帮助你理解事情怎样向好的发展,怎样和为什么有些任务向坏的方向发展。这篇文章会关注网页抓取。

不抓取,却阻止

当你开始网站航行时是主要考虑你的现实访问者,当然也是应该的。但是有些导航结构可能会阻止搜索引擎蜘蛛,使得他们不太容易在第一位置发现你的网页。作为一个另外的红利,许多你对网页做的事情会使得蜘蛛人更容易找到网站内容,使得访问者在网页上更容易找到方向。

顺便说一下,你可能不想要蜘蛛人有能力索引到你网页上的所有内容,这个你值得记在心里。如果有个网页是要缴费才能进入的,你可能就不希望google 抓取到你的内容来显示给任何输入关键词的人看。有很多方法可以人为地阻止蜘蛛人抓到这些内容。

动态的URL是对搜索引擎蜘蛛人的一个最大的阻止。特别是,有两个及以上的动态参数的网页会给与蜘蛛人装备。你看到一个动态的URL的时候能够认出来,它经常会有许多的“垃圾”符号比如问号、等号、和号(&)和百分号。这些网页对于人类使用者是很好的,他们会通过设定一些参数得到。比如说,在 weather.com搜索框中输入一个邮政编码,将会反馈一个特殊地区的天气情况的页面和一个有着动态的URL的页面位置。

还有很多别的方法蜘蛛人不喜欢。比如,相同网址上的网页有超过一百个超链接会使得他们看一眼就累了。蜘蛛人不会追随这些链接。如果你是想建造一个网站地图,有更好的方法来阻止他。

页面上藏着从你的主页上来的多于三个链接也会不被抓取。因为这个会使得许多人类在面对网页上那么多链接又没有导航的情况下搞晕。

要求“身份验证”等的网页也不会被抓取。蜘蛛人不是扫描器,也不是都有相同的能力。他们也许不能够保持相同形式的验证。

另一个阻止的是分割成框架的网页。许多网页设计者喜欢框架;它使得访问者即使在内容中转悠的时候都保持在同一个页面中,但是蜘蛛人发现框架网页很困惑。对它们而言,内容就是内容,它们不知道哪个网页应该出现在搜索结果页面上。直率的讲,许多用户也不喜欢框架,只不过是提供一个更干净的页面。

上面讲的大部分阻止蜘蛛人工作的东西是一些你意外地放在页面上的。下面要来讲一些网站管理员故意用的来阻止蜘蛛人的。前面我提到过一个最主要的原因,内容需要用户付费才可看到,还有一些别的,比如内容可能是免费的,但不是每个人都可以轻易得到的。

填完一些表格并提交才能进入的网站很有可能会蜘蛛人是关门的。他们是无法得到按钮或类型的。同样,要求使用下拉菜单的网页可能是搜索不到的,只能通过一个搜索框才能得到的文件也一样。

故意阻止的文件一般是抓取不到的。

现在你了解到了什么可以让蜘蛛人窒息,你怎样鼓励他们去任何他们想去的地方。关键就是要提供直接的HTML链接到每个你想蜘蛛人去的页面。还有,给他们一个浅的池子去玩耍。蜘蛛人一般从主页开始,如果你的网页的部分不能从那儿进入,机会就是蜘蛛人不会看到。这个时候网站地图的使用就是无价的。

蜘蛛人在超链接中看到什么?

我假设你对HTML相当的熟悉。如果你看过HTML页面的代码,你可能会注意到超链接出现地方的文本,<a href=http://www.seochat.com>seo Chat</a>
当网站浏览器读到这儿的时候,它会知道文本“seo chat”应该是个超链接http://www.seochat.com 网页的。附随的,在这个例子中“seo chat”是链接的引导词。当蜘蛛读到这个文本的时候,它会想,“OK,页面www.seochat.com”是于当前页面上的文本相关的,而且与“SEO CHAT”极为相关。

现在来看点复杂的:
<a href=http://www.seochat.com”
Title=”great site for seo info”
Rel=”nofollow”>seo chat</a>

现在怎样?引导词没有变化,所以当网页浏览器展示到这儿的时候,链接看起来还是一样。但是一个蜘蛛人会想,“OK,不仅仅这个网页与’seochat’是相关的,它还与短语‘great site for seo info’相关。而且,我现在在的这个网页和这个超链接还有关系。它显示这个链接不是作为那个网页的投票,那就不会增加PR值了。”

最后的那一点,关于这个链接不作为那个网页的投票,是标签“rel=nofollow”反映的。这个标签演变成解决人们提交相关评论到博客“欢迎访问我的药品网站”的链接。这种评论方法是种试图提高他自己网页在搜索排名位置的方法。这个被称为“评论垃圾”。大多数搜索引擎不喜欢评论垃圾,因为它歪斜了它们的结果,使得他们相关性下降。你可能会猜到,“nofollow”属性对于搜索引擎是特别的,它在那儿是不会被别人注意到的。雅虎,MSN, google, 认出它,但是askjeeves不支持nofollow, 它的蜘蛛人只是简单的忽视掉这个标签。

在一些情况中,链接可能是到一个图片的。超链接会包括照片的名称,还可能包括一些“alt”属性的备用文本,这些对于盲人用的声音浏览器有帮助。它也同时对于蜘蛛人有助,因为它给与了另一个页面描述的证据。

超链接在网页上可能还有别的形式,但是总的来说,这些形式不通过排名或蜘蛛人价值。总而言之,链接越接近<a href=”URL”>text</a>的形式, 那么蜘蛛人也容易抓住链接,反之亦然。