当我们坐在计算机前打开浏览器使用关键词在各种搜索引擎(例如 Baidu、Bing、Google 和 Yahoo!等)上寻找信息时,几乎在按下回车键的一瞬间来自整个网络的一系列相关结果便呈现在了我们的眼前。这些搜索引擎是如何查找与我们的搜索词相匹配的网页的?又是如何确定搜索结果的排列顺序的?
Hand-Drawn-Process
搜索引擎使用一个称之为“蜘蛛(Spider)程序”或“爬虫程序”的自动化程序来漫游整个网络去收集网站的数据。搜索引擎蜘蛛会记录各个网站网页中的内容(文本、图片、视频等等信息)。搜索引擎蜘蛛还会跟踪网站每个网页中的超链接,一直不断的跟踪这些链接到指向的目标网页,然后在这些目标网页中,重新执行上述的过程,周而复始不断爬啊爬啊到底有一定的阀值后,会将收集的数据添加到搜索引擎的数据库中,然后会有专门的程序将数据库中的数据按特定方式进行编制并建立索引。

当用户启动搜索时,搜索引擎将查询其数据库以查找包含用户所提供词条的网站。将依据搜索引擎的算法对这些网站进行排名,然后在结果页中提供给用户。

简单举例子来说,我们可以将在网络上进行搜索想象成在一本大百科全书中查阅一些具体的信息,书中海量的索引会告诉我们各种内容所在的具体位置。对比理解:搜索引擎是辅助我们去检索海量索引的程序,我们在使用搜索引擎去搜索信息时,有个程序(搜索引擎)会高速检索庞大而全面的索引库按照一些特定规则来确定并返回(提供)相关的搜索结果。
Google-Search-Engine-Diagram
一般把搜索引擎工作流程归为三大块:

  1. 分析抓取:搜索引擎蜘蛛能否找到我们的网站?蜘蛛能否正常识别读取我们网站的内容?
  2. 编制索引:搜索引擎是否将我们的网站编入索引?
  3. 排名结果:网站是否包含精彩、实用且与用户搜索词相关的内容?

抓取网页·分析超链接

抓取网页是指搜索引擎蜘蛛找出要添加到索引中不存在的新网页和老网页更新了新内容的过程。

搜索引擎使用大量服务器来漫游抓取(“爬取”或“提取”)网络上海量的网页。执行抓取任务的自动化程序叫“蜘蛛(Spider)程序”或“爬虫程序”。各大搜索引擎Spider使用各自独特的算法来进行抓取:Spider程序会依照一些规则自动的确定要抓取的网站、网站抓取频率以及从每个网站中抓取的网页数量,基本无需人工干预。

Spider从一份网址列表开始其抓取过程,该列表是在之前进行的抓取过程中不断积累形成的,且随着网站站长所提供的站点地图数据的增多而不断扩大。Spider在访问每个网站时,会检测每个网页上的超链接,并将这些链接添加到它要抓取的网页列表中。新建立的网站、对现有网站所进行的更改以及变的无效的超链接都会被记录下来,并用于更新搜索引擎的索引库。

当然并不是任何的网站网页内容Spider都会进行爬取。

Spider每次爬行特定网站时会首先当前网站根目录下的robots.txt文件例如:

http://www.9sep.org/robots.txt

这个Robots.txt文件列出Spider可以爬取的网页范围以及忽略爬取的范围。如果不使用robots.txt文件你也可以在网页的头部(Head)中使用标签,例如:这里使用 nofollow 和 noindex 属性值表明:希望搜索引擎蜘蛛(Spider)不要跟踪网页上的超链接以及当前网页不编入索引中去。

Ps:标签指定的规则并不被所有搜索引擎所识别遵守。已知全面遵守执行的有(Bing、Google 和 Yahoo!等)。

识别内容·处理数据编入索引

Spider程序抓取收集的每个网页内容,会有专门的后续程序(这货木有公用的代号昵称 ╭( ̄m ̄*)╮,一般也算到Spider程序去)再处理:将网页中可以识别的所有字词并处理(分词、标注词性等等),然后这些字词在网页上的位置/频率等等汇编成一个包含海量标记信息的索引。

当然会有对网页中特定的关键内容标记和属性中的信息进行特殊处理的设定,例如网页的Title标记和Alt属性。Spider程序可处理多种类型的网页内容,但并不是所有类型的内容都能处理。例如,无法处理某些富媒体文件(.swf)或动态交互(ajax)网页的内容。不同的搜索引擎可能使用不同的算法工作所以识别内容,处理数据方面可能略有差异。这里头的道道直接/间接展现搜索引擎公司的实力。

Ps:如果对分词、词性识别感兴趣可以访问:简单的在线文本分词·关键词研究辅助工具

听用户的话(搜索请求)·提供结果(排名)

用户输入查询请求时,搜索引擎会从自己的(也可以租借别人家的…)索引库中依照特定的规则查找匹配的网页,并返回我们认为与用户搜索最为相关的结果。相关性是由许多个因素(两三百的样子)决定的,其中一个简单的加权因素就是:其他相关网站中存在超链接(外部链接一般简称:外链)指向我们网站的相关网页,可以提高我们网站中的这个网页在相关性上的得分(权威的外部链接达到一定数量的阀值再增加就没啥子用)。

要让我们的网站在各大搜索结果页中排名靠前,首先就要确保各大搜索引擎能够正确地抓取我们的网站并将其编入索引。如果某个网站在某一关键字搜索中获得较高的排名,那是因为,搜索引擎已通过算法确定其内容与用户查询的相关程度较高(也就是相对其它在索引中的对手网页某个网页在某个关键词的多个相关性因素中得分更高,于是把相关程度低一些的对手的踩在了脚下,就是这样赤果果·血淋淋不用怀疑)。

相关性加权的简单概念:
搜索引擎使用以下因素对搜索词的每个实例进行加权:

  1. 权威:是指由其他网站授予的相关性。如果我们的网页对于某个词条的相关性得分很高,那么,如果相关性得分很高的其他网站中的网页具有指向您的网页的链接,则我们的网页的排名将较高。
  2. 文本位置:是指词条出现在网页中的何处。如果特定搜索词位于网站上某个网页的标记中,则搜索引擎通常将假定您的网页与该词条非常相关。
  3. 出现频率:是指词条在网页中出现的次数。如果特定搜索词在某个网页中出现多次,则搜索引擎将可能会给予您的网页较高的相关性得分。

搜索引擎通过将位置和频率因素相结合(TF-IDF算法分词),可对搜索词相关的每个实例(网页)的内容进行加权分析以确定各个网页的相关程度。例如,某个词条在网页中出现多次,但仅出现在正文文本中。由于该词条未出现在标记或任何标题标记中,因此搜索引擎可能会认为该词条不是网页的中心重点,并可能为这网页给予较少的加权。

权威由使用该搜索引擎的用户授予。从搜索引擎的结果页中选择我们的网站的人越多(通常称为“点击次数”或者称为“点击算法”也可以相对理解成点击率),该搜索引擎授予我们的网页获得的权威就越高。

搜索引擎优化(SEO)最纠结也是SEO这一职业产生的一个关键性原因就是:各大搜索引擎所涉及的相关性因素以及各自排名加权算法的不公开(商业机密谁会公开?),SEOer面对搜索引擎这个黑匣子,除了了解搜索引擎基础的工作原理并及时的阅读各大搜索引擎最新发布的优化指南提示的最佳做法外需要不懈的努力摸索与实践。

comment-author avatars

Zhys

Cherish the time! Don't waste even nine seconds to remember the past, live in the present and for the future planning.

猜你喜欢...

2 回复

  1. comment-author avatars wys.me说道:

    :mrgreen: 图片让人脑油大开,长知识了。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

邮件通知