搜索引擎的工作过程大体上可以分成三个阶段:
爬行和抓取:搜索引擎经过跟踪连接访问网页、得到页面 HTML 代码并存入数据库。
预处理:搜索赢球对抓取来的页面数据文字进行文字提取、中文分词、索引等处理,以备排名程序调用。
排名:即用户输入关键词后,排名程序调用索引数据库,计算相关性,然后按一定格式生成搜索结果页面。
第一步:爬行和抓取
爬行和抓取搜索引擎工作的第一步目的是完成数据收集的任务。
spider
搜索引擎用来爬行和访问页面的程序被称为蜘蛛(spider),也称为机器人(bot)。搜索引擎蜘蛛访问网站页面时类似于普通用户使用的浏览器。
蜘蛛程序发出页面访问请求后,服务器返回 HTML 代码,蜘蛛程序把收到的代码存入原始页面数据库。为了提升爬行和抓取速度,搜索引擎一般或多个spider并行爬行。
spider 访问任何一个网站时,都会先访问该网站根目录下的 rotbots.该文件能够告诉 spider 哪些文件或目录能够抓取或者禁止抓取。
和不一样的浏览器 UA 不一样同样,不一样厂商的 spider 也带有特定代理的名称。
跟踪链接
为了抓取网上尽量多的页面搜索引擎蜘蛛会跟踪页面上的链接从一个页面爬到下一个页面就好像蜘蛛在蜘蛛网上爬行一样。
爬行遍历有两种策略:
深度优先:spider 沿着页面的连接一直爬取,直到该页面没有其余连接为止
广度优先:spider 在一个页面发现多个连接,先把这页面的全部第一层连接都遍历完,再继续第二层连接遍历
程序员必须熟悉这两种遍历算法。
理论上不管是深度优先仍是广度优先,只要给 spider 足够的时间,老是能把互联网上全部的页面连接都爬取完。但实际状况并非这样,因为各类资源的限制,搜索引擎也只是爬行和收录互联网的一部分。
因此一般 spider 都是深度优先和广度优先混合使用。
吸引蜘蛛
经过上面的介绍能够知道,spider 不可能将全部的页面都收录,所以 SEO 就是要经过各类手段,吸引 spider 爬行收录本身网站更多的页面。既然不能全部页面都收录,那么 spider 确定是尽可能抓取重要页面。那么 spider 是如何判断哪些页面重要?有几个影响因素:
1.网站和页面权重。质量高,资格老的网站权重高。
2.页面更新程度。更新频率高的网站权重高。
3.导入的链接:无论是外部链接还是内部链接,要被蜘蛛抓取,就必须要有导入链接进入页面。高质量的导入连接也常常使页面上的导出连接被爬行深度增长。
4.与首页的点击距离:一般来说,网站最高的权重就是首页,大部分外链都是指向首页,蜘蛛访问最频繁的也是首页。所以离首页越近的页面,权重也相对更高,被 spider 爬行的机会也越大。
地址库
为了避免重复爬行和抓取网址,搜索引擎会建立一个数据库,记录已被发现还没有抓取的页面和已经被抓取的页面。地址库有几个来源:
1.人工录入的种子网站
spider 爬取页面后,解析出网址,与地址库对比。如果不存在,则存入
站长经过搜索引擎网页提交网址(通常我的博客或网站都采用这种方式)
2.文件存储
spider 抓取的数据存入原始页面数据库。其中的页面数据与用户游览器得到的HTML是完全一样的。
3.爬行时的复制内容检测
检测和删除复制的内容是在预处理步骤中处理的。不过 spider 在爬行的时候也会进行一定程度的复制内容检测。遇到权重低,而大量抄袭复制内容的网站,蜘蛛很可能就不再继续爬行了。这也是为何说一个网站须要原创内容的缘由。
第二步:预处理
预处理有时被称为索引。由于索引是预处理中最主要的步骤。预处理有几个步骤:
1.提取文字。搜索引擎会提取页面的可见文字以及特殊的包含文字信息的代码,如 Meta 标签、图片Alt属性、超链接锚文字等。
2.分词,不一样的语言有不一样的分词如中文分词,英文分词。对第一步中提取的文本进行分割。不一样的搜索引擎使用的分词算法不一样,会有差别。
3.去中止词。不管中文仍是英文,都会有一些频率高,对内容没有影响的词。如语气词、感叹词,介词、副词等。搜索引擎在索引页面之前删除这些单词。
4.消除噪声。绝大部分进行页面还有很大一部分研究内容对页面主题也没有贡献。比如版权声明文字,导航条等。以博客为例,几乎每个页面都有文章分类、历史导航等信息,这些信息都与页面的主题无关。这些都是属于噪音,需要消除掉。
5.去重。同一篇文章常常会重复出如今不一样的网站及同一个网站的不一样网址,搜索引擎并不喜欢这种重复的内容,因此搜索引擎会对这部份内容进行去重。
经过文字提取、分词、消噪、去重后,搜索引擎得到的就是独特的、能反映页面主体内容的、以词为单位的内容。接下来搜索引擎就可以提取关键词,按照分词程序划分好的词,把页面转化为一个关键词组成的集合,同时记录每一个关键词在页面上的出现频率、出现次数、格式(如出现子啊标题标签、黑体、H标签、锚文字等)、位置等信息。而后把这些页面及关键词造成的结构存储进索引库。
倒排索引正向索引还不能直接用于排名。所以搜索引擎会将正向索引数据库重新构造为倒排索引,把文件对应到关键词的映射转换为关键词到文件的映射。这样在搜索关键词的时候,排序程序就在倒排索引中定位到这个关键词,就能够立刻找出这个关键词全部的文件。
链接关系计算链接关系计算也是预处理中很重要的一部分。搜索引擎在抓取页面内容后,必须事前计算出:页面上有哪些连接指向哪些其余页面,每一个页面都有哪些导入连接,连接使用了什么锚文字。这些复杂的连接指向关系造成了网站和页面的连接权重。GooglePR值就是这种链接关系的最主要体现之一。其余搜索引擎也都进行相似技术,虽然并不称为 PR。
特殊文件计算。除了 HTML 文件之外,搜索引擎还能爬取抓取和索引以文字为基础的多种文件类型,如 PDF,Word,PPT,TXT等。
第三步:排名
这个阶段是对用户输入进行处理,然后根据用户输入的关键词,调用排名程序的索引程序,计算排名,显示给用户。
这个过程可分为以下几个步骤:
1.搜索词处理
用户输入的关键字,停止单词、命令处理等处理。
2.文件匹配
根据关键词找出自己所有信息匹配关键字的文件。
3.初始子集选择
因为文件匹配阶段出来的文件数量巨大,不可能所有显示。所以须要根据页面权重计算出一个子集。
4.相关性计算
选择子集之后,需要引入子集中页面的相关性。计算相关性是排序过程中最重要的一步。
影响相关性研究主要经济因素有几点:
①关键词经常使用程度。越经常使用的词对搜索词的意义贡献越小。越不常用则越大。
②词频与密度。在没有进行堆积关键词的情况下,页面的关键词之间出现问题次数越来越多,密度水平越高,则相关性也越大。不过该因素的重要程序愈来愈低了。
③关键词的位置与形式。在前面索引提到的,页面的标题标签,黑体,H1都是比较重要的位置。
④关键词距离。切分后的关键词完整匹配地出现,说明与搜索词最相关。比如你搜索 hexo博客SEO,如果在页面上连续完整出现 hexo博客SEO,说明相关性最高。
⑤链接分析及页面权重 除了页面本身的因素,页面之间的链接和权重关系也影响关键词的相关性,其中最重要的是锚文字。页面有越多以锚文字为搜索词的导入链接,说明页面的相关性越强。
⑥排名过滤及调整
通过上面的步骤以后,已经获得大致的排名。之后搜索引擎可能还有一些过滤算法对排名进行轻微调整其中最主要的过滤就是施加惩罚。一些有做弊的页面会被下降权重。
⑦排名显示
所有排名确定后,排名程序就调用原始页面的标题、Description Meta 等信息显示在页面上。
⑧搜索缓存
用户搜索的关键词有很大一部分是重复的。因此有一部分的搜索是会被缓存下来的。
⑨查询及点击日志
搜索用户的IP地址、搜索的关键词、搜索时间,以及点击了哪些结果页面,搜索引擎都记录形成日志。这些日志文件中的数据对搜索引擎判断搜索结果质量、调整搜索算法、预期搜索趋势等都有重要意义。
通过采取这三个步骤您可以获得更深入的理解如何搜索引擎的工作。这是一个更好的理解,以了解下一个站的优化内容和博客优化实践。