搜索引擎的工作过程非常复杂,但简单来说,搜索引擎的工作过程大致可以分为三个阶段。爬取爬取:搜索引擎蜘蛛通过跟随链接访问页面,获取页面的HTML代码并存储在数据库中。预处理:搜赢提取抓取的页面数据和字符,中文分词,索引等。对于排名程序的调用。Ranking:用户输入关键词后,Ranking调用索引数据库数据,计算相关度,然后按照一定格式生成搜索结果页面。
爬行和抓取
爬行爬行是搜索引擎工作的第一步,完成数据收集的任务。
蜘蛛
搜索引擎用来抓取和访问页面的程序被称为蜘蛛,也称为机器人。
蜘蛛代理名称:
百度:百度蜘蛛+(+http://www.Baidu.com/search/Spider.htm)
中国雅虎蜘蛛:Mozilla/5.0(兼容;雅虎!嗤之以鼻中国;http://misc.yahoo.com.cn/help.html)
雅虎蜘蛛:Mozilla/5.0(兼容;雅虎!slurp/3.0;http://help.yahoo.com/help/us/ysearch/slurp)
谷歌:Mozilla/5.0(兼容;Googlebot/2.1;+http://www.Google.com/bot.html)
微软必应蜘蛛:MSNBOT/1.1(+http://search.MSN.com/MSNBOT.htm)
搜狗:搜狗+WEB+机器人+(+http://www.sogou.com/docs/help/WEBmasters.htm#07)
搜索蜘蛛:搜搜蜘蛛+(+http://help.soso.com/webspider.htm)
蜘蛛:Mozilla/5.0(兼容;YodaoBot/1.0;http://www.yodao.com/help/webmaster/spider/;)
跟踪链接
为了在互联网上爬行尽可能多的页面,搜索引擎蜘蛛会顺着页面上的链接,从一个页面爬行到下一个页面,就像蜘蛛在蜘蛛网上爬行一样,这就是搜索引擎蜘蛛这个名字的由来。最简单的爬行遍历策略分为两种,一种是深度优先,一种是广度优先。
深度优先搜索
深度优先搜索是指在搜索树的每一层,总是只展开一个子节点,一直深入到不能再深入为止(到达叶子节点或者受到深度限制),然后从当前节点返回到上一个节点,向另一个方向继续前进。这种方法的搜索树是从树根开始逐渐形成的。
深度优先搜索也称为垂直搜索。因为有解的问题树可能包含无限个分支,如果深度优先搜索进入无限个分支(即无限深度),就不可能找到目标节点。因此,深度优先搜索策略是不完整的。另外,应用这种策略得到的解不一定是最优解(最短路径)。
广度优先搜索
在深度优先搜索算法中,节点越深,扩展得越早。如果将算法改为根据搜索中节点的级别进行搜索,则在不搜索处理本层节点的情况下,无法处理更低的节点,即先扩展深度较小的节点,也就是说先扩展处理先生成的节点。这种搜索算法称为广度优先搜索法。
在深度优先搜索算法中,节点越深,扩展得越早。如果将算法改为根据搜索中节点的级别进行搜索,则在不搜索处理本层节点的情况下,无法处理更低的节点,即先扩展深度较小的节点,也就是说先扩展处理先生成的节点。这种搜索算法称为广度优先搜索法。
吸引蜘蛛
哪些页面被认为是重要的?有几个影响因素:
网站和页面的权重。质量高、资质老的网站被认为权重更高,这类网站的页面抓取深度会更高,所以收录的内页会更多。
页面更新程度。蜘蛛每次爬行都会存储页面数据。如果第二次爬取发现的页面与第一次爬取记录的页面完全相同,说明该页面没有更新过,不需要蜘蛛频繁爬取。如果页面内容更新频繁,蜘蛛会更频繁的访问这类页面,页面上出现的新链接自然会被蜘蛛更快的追踪到抓取新页面。
导入链接。无论是同一个网站的外部链接还是内部链接,要被蜘蛛抓取,必须有一个导入页面的链接,否则蜘蛛根本没有机会知道页面的存在。高质量的导入链接往往会增加页面上导出链接的抓取深度。一般来说,网站上权重最高的是主页,大部分外部链接都指向主页,主页也是蜘蛛访问最频繁的。离首页的点击距离越近,页面的权重越高,被蜘蛛抓取的几率就越大。
地址库
为了避免重复抓取和爬取,搜索引擎会建立一个地址数据库,记录已经找到但没有爬取的页面,以及已经爬取的页面。地址库中的URL有几个来源:
(1)手动输入种子网站。
(2)蜘蛛抓取页面后,从HTML中解析出新的链接uRL,并与地址库中的数据进行比较。如果它是一个不在地址库中的URL,它将被存储在要访问的地址库中。
(3)站长通过搜索引擎网页提交表单提交的URL。
根据重要性,蜘蛛从要访问的地址库中提取uRL,访问并抓取页面,然后将这个uRL从要访问的地址库中删除,放入已访问的地址库中。
大多数主流搜索引擎都为站长提供了提交URL的表格。但是这些提交的URL只存储在地址库中,是否被收录取决于页面的重要性。搜索引擎收录的大部分页面都是蜘蛛自己跟随链接获取的。可以说,提交页面的基础T是没有用的。搜索引擎更喜欢沿着链接找到新的页面。
文件存储由搜索引擎蜘蛛捕获的数据存储在原始页面数据库中。页面数据和用户浏览器获取的HTML完全一样。每个uRI都有一个唯一的文件号。
爬网期间的复制内容检测
检测和删除复制的内容通常是在后面的预处理过程中进行的,但是现在的蜘蛛在抓取和抓取文件的时候也在一定程度上检测到了复制的内容。当你在权重较低的网站上遇到大量转载或抄袭的内容时,你很可能就不会继续抓取了。这就是为什么有些站长在日志文件中发现了蜘蛛,但是页面从来没有真正被收录。
预处理
在一些SEO资料中,“预处理”也被简称为“索引”,因为索引是预处理最重要的一步。
搜索引擎蜘蛛抓取的原始页面不能直接用于查询排名处理。搜索引擎数据库的页面数量在万亿以上。用户输入搜索词后,排名程序实时分析这么多页面的相关性,计算量太大,无法在一两秒内返回排名结果。因此,必须对捕获的页面进行预处理,为最终的查询排名做准备。
和抓取一样,预处理是提前在后台完成的,用户在搜索时感受不到这个过程。
1。选择文本
现在的搜索引擎还是基于文本内容。除了用户在浏览器上可以看到的可见文本,蜘蛛抓取的页面中的HTML代码还包含了大量的HTML格式标签、JavaScript程序等无法用于排名的内容。搜索引擎预处理首先要做的就是去除HTML文件中的标签和程序,提取出可以用于排名处理的网页文本内容。
今天是愚人节。
删除HTML代码后,留给排名的唯一文本是这一行:
今天是愚人节。
除了可见文本,搜索引擎还会提取一些包含文本信息的特殊代码,如Meta标签中的文本、图片的替换文本、Flash文件的替换文本、链接锚文本等。
2。中文分词
分词是中文搜索引擎特有的一步。搜索引擎存储和处理页面,用户基于单词进行搜索。英语语言中的单词是用空分隔的,搜索引擎索引程序可以直接把句子分成一组组的单词。但是中文单词之间没有分隔符,一个句子中的所有单词都是连在一起的。搜索引擎首先要区分哪些词构成一个词,哪些词本身就是一个词。比如“减肥法”会分为“减肥”和“方法”两个词。
中文分词方法基本上有两种,一种是基于词典匹配的,另一种是基于统计的。
基于词典匹配的方法是将一段待分析的汉字与预先制作的词典中的词条进行匹配,在待分析的汉字串中扫描词典中已有的词条,匹配成功,或者分词。
根据扫描方向,基于字典的匹配方法可以分为正向匹配和反向匹配。根据匹配长度的优先级,可以分为最大匹配和最小匹配。通过优先混合扫描方向和长度,可以产生不同的方法,例如正向最大匹配和反向最大匹配。
字典匹配法计算简单,其准确性很大程度上取决于字典的完备性和更新性。
统计分词法是指分析大量文本样本,计算相邻词的统计概率。相邻的词出现得越多,就越有可能构成一个词。统计方法的好处是对新词的反应更快,也有利于消歧。
基于词典匹配和统计的分词方法各有优缺点。在实践中,分词系统是两种方法的混合,既快速高效,又能识别新词,消除歧义。
中文分词的准确性往往会影响搜索引擎排名的相关性。比如百度搜索“搜索引擎优化”时,从快照可以看出,百度把“搜索引擎优化”这六个字当成一个字。
而在谷歌中搜索同一个词时,快照显示谷歌将其切割为两个词:“搜索引擎”和“优化”。显然百度细分更合理,搜索引擎优化是一个完整的概念。谷歌的分词更倾向于碎片化。
这种分词上的差异很可能是某些关键词在不同搜索引擎中排名不同的原因之一。比如百度更倾向于完全匹配页面上的搜索词,也就是说在搜索“足够玩博客”的时候,如果这四个词连续完整的出现,更容易在百度获得好的排名。另一方面,谷歌不要求完全匹配。有些页面会出现“够剧”和“博客”的字样,但不一定要完全匹配。“够剧”的字样出现在前面,“博客”出现在页面的其他地方。这样的页面在谷歌搜索“够剧博客”时也能获得不错的排名。
搜索引擎对页面的切分取决于词库的大小和准确率以及切分算法的好坏,而不是取决于页面本身,所以SEO人员在分词方面能做的并不多。唯一能做的就是在页面上以某种形式提示搜索引擎,有些词要当作一个词来处理,尤其是可能存在歧义的时候,比如页面标题、h1标签、黑体中出现的关键词。如果页面是关于“和服”的内容,那么可以用粗体标注“和服”二字。如果页面是关于“化妆和服装”的,可以用粗体标注“服装”二字。这样搜索引擎在分析页面的时候,就知道用粗体标注的应该是一个词。
3。转到停用词
无论是英文还是中文,都有一些在页面内容中出现频率很高但对内容没有影响的词,比如助词的得、地、的,感叹词的啊、哈、呀,副词或介词的如此、一、却等。这些词被称为停用词,因为它们对页面的主要意思没有什么影响。英语中常见的停用词有the、a、an、to、of等。
搜索引擎会在索引页面之前去掉这些停用词,这样会让索引数据的主题更加突出,减少不必要的计算。
4。消除噪音
大部分页面上还有一些内容对页面主题没有贡献,比如版权声明、导航栏、广告等。以常见的博客导航为例。几乎每个博客页面都有文章分类、历史存档等导航内容,但这些页面本身与“分类”、“历史”这两个字无关。用户在搜索“历史”、“分类”等关键词时,仅仅因为这些词出现在页面上而返回博文,是没有意义的,也是完全不相关的。所以这些区块都是噪音,只能起到分散页面主题的作用。
搜索引擎需要识别并消除这些噪音,在排名时不要使用有噪音的内容。去噪的基本方法是根据HTML标签对页面进行分块,区分页眉、导航、文本、页脚、广告等区域。网站上大量重复的区块往往属于噪音。页面去噪后,剩下的就是页面的主要内容了。
5。重复数据删除
搜索引擎也需要对页面进行重复数据删除。
同一篇文章经常在不同的网站和同一网站的不同网址上重复出现,搜索引擎不喜欢这种重复的内容。当一个用户搜索的时候,如果前两页看到不同网站的同一篇文章,用户体验太差了,虽然都是内容相关的。搜索引擎希望在同一篇文章中只返回一篇文章,因此在索引之前需要识别并删除重复内容。这个过程称为“重复数据删除”。
去权重的基本方法是计算页面特征关键词的指纹,也就是说从页面的主要内容中选取最有代表性的部分关键词(往往是出现频率最高的关键词),然后计算这些关键词的数字指纹。这里的关键词选择是经过分词、停用词去除、去噪之后的。实验表明,通常情况下,选择10个特征关键词可以达到较高的准确率,之后选择更多的词对去重的准确率贡献不大。
MD5算法(信息摘要算法第五版)等典型的指纹计算方法。这种指纹算法的特点是,输入(特征关键词)的任何细微变化都会导致计算出的指纹有很大差距。
了解了搜索引擎的去重算法,SEO人员应该知道,简单的加上“的”、“的”、“的”,改变段落顺序,所谓的伪原创,是逃不过搜索引擎的去重算法的,因为这样的 *** 作改变不了文章的特征关键词。而且搜索引擎的去重算法很可能不局限于页面级别,而是段落级别。把不同的文章混在一起,改变段落顺序,是不能让转载和抄袭成为原创的。
6。正向索引
前向索引也可以简称为索引。
经过分词、分词、去噪和去重后,搜索引擎得到能够反映页面主要内容的、以词为基础的独特内容。接下来,搜索引擎索引程序可以提取关键词,根据分词程序划分出的词,将页面转换成一组关键词,并记录频率、频度、格式(如title标签、bold、H标签、锚文本等。)和位置(如页面的第一段文字等。)的页面上的每个关键词。这样就可以将每个页面记录为一组关键词,其中还记录了每个关键词的词频、格式、位置等权重信息。
搜索引擎索引程序将由页面和关键字形成单词列表结构存储到索引库中。简化的索引列表如表2-1所示。
每个文件对应一个文件ID,文件的内容表示为一组关键字。事实上,在搜索引擎索引数据库中,关键词也被转化为关键词ID。这种数据结构称为前向索引。
7。倒排索引
前向指标不能直接用于排名。假设用户搜索关键字2。如果只有正索引,排序程序需要扫描索引数据库中的所有文件,找出包含关键字2的文件,然后计算相关度。这样的计算量无法满足实时返回排名结果的要求。
因此,搜索引擎会将前向索引数据库重构为倒排索引,将关键字对应的文件的映射转化为关键字到文件的映射,如表2-2所示。
在倒排索引中,关键字是主键,每个关键字对应一系列文件,该关键字出现在这些文件中。这样,当用户搜索一个关键字时,排序程序在倒排索引中定位该关键字,并能立即找出包含该关键字的所有文件。
8。链接关系的计算
链接计算也是预处理的重要部分。现在所有主流的搜索引擎排名因素都包含了网页之间的链接流量信息。搜索引擎抓取页面内容后,必须事先计算好页面上哪些链接指向哪些其他页面,每个页面上哪些导入链接,链接用了哪些锚词。这些复杂的链接指向关系形成了网站和页面的链接权重。
谷歌价值是这种链接关系最重要的体现之一。其他搜索引擎也做类似的计算,虽然不叫PR。
由于页面和链接数量巨大,而且在线链接不断更新,所以计算链接和PR需要很长时间。PR和链接分析有专门的章节。
9。特殊文件处理
除了HTML文件,搜索引擎通常可以抓取和索引各种基于文本的文件类型,如PDF,Word,WPS,XLS,PPT和TXT文件。我们也经常在搜索结果中看到这些文件类型。但目前的搜索引擎无法处理图片、视频、Flash等非文本内容,也无法执行脚本和程序。
虽然搜索引擎在识别图片和从Flash中提取文本内容方面取得了一定的进步,但距离通过读取图片、视频和Flash内容直接返回结果的目标还很远。图片和视频内容的排序通常基于相关的文本内容。详情请参考后面的综合搜索部分。
排名[/s2/]
搜索引擎蜘蛛抓取界面后,搜索引擎程序计算倒排索引后,搜索引擎就做好了随时处理用户搜索的准备。用户在搜索框中填入关键词后,排名程序调用索引数据库数据,计算排名并显示给客户。排名过程直接与客户互动。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)