搜索引擎工作原理介绍

2021-11-10 11:44:57 来源:本站
  搜索引擎优化相关的工作人员都把自己比喻成为网站的贴身管家,身为一名合格称职的管家就必须了解SEO优化对象的习性、爱好、健康程度等。然而SEO的服务就是搜索引擎和用户,所以必须根据用户的需求来进行SEO优化操作,根据搜索引擎工作原理和搜索算法规则进行优化,无论是用户需求,还是用户的爱好,都需要进行数据分析,多实践操作,平日里实践的越多,拥有的经验也就越丰富。其实商夏通认为,搜索引擎是由用户的刚需创造出来的,用户没有这个需求,开发商开发出来已就毫无意义的。搜索引擎工作过程主要分为三段工作流程,爬行抓取、预处理和服务输出。
  一、爬行抓取
  网站上线后,爬行抓取是搜索引擎工作首要部分,也是最核心的部分。搜索引擎蜘蛛通过所有URL把内容抓取进行分析,然后在进行处理,假如说抓取这部分出了错,为用户提供的搜索内容肯定也是错误的。
  每次我们通过搜索引擎输入关键词后,会出现很多相关的信息,然而,这个过程是以秒来计算的。你可以想一想,搜索引擎是在1秒钟之内把查询的关键词信息从互联网海量的信息中逐一抓取一遍,可想而知这些数据都是搜索引擎事先处理好的。
  平时我们上网时随便打开一个网页时间在1秒钟之内,这仅仅是打开一个网页的时间,所以搜索引擎在秒计算的情况下是无法把所有的网页信息都查询一遍的,这不仅耗时也耗成本。实际上搜索引擎是事先已经处理好了所抓取的网页,搜集工作也是要按照一定的规律来进行的,基本上有以下两种特征:
  1、批量收集:对于互联网上只要存在的网页链接都会被收集一遍,耗时需要多久官方未进行公布。商夏通知道的批量收集是存在一个缺点,比较消耗宽带,并且时效性也不高。
  2、增量收集:它是批量收集的一个技术升级版,完美的弥补了批量收集的缺点,增量收集是在原有的基础上搜集新增的URL,变更上次收集之后又改的页面,删除收集信息重复或者不存在的页面。
  有一种较为简单的方法,可以让搜索引擎来爬行你的网站,就是自己手动向搜索引擎提交网站和增加sitemap,等不了多久蜘蛛就会来爬取你的网站。不过现在主动提交已经变的很慢了。最理
  想的办法是在每个网页增加自动推送代码,只要有人点击这个页面,蜘蛛就会自动来抓取你的网站。假如你不会增加这段代码,可以找懂的人来帮你增加,下面详细的介绍搜索引擎蜘蛛的情况:
  3、各种搜索引擎蜘蛛的介绍
  搜索引擎蜘蛛是一种自动程序,它的作用是访问互联网上的网页、图片等内容。一般被命名为"spider+URL"后面的URL指的网址,是搜索引擎的代表,假如你要查询某个搜索引擎是否来爬行过你的网站,可以通过查看服务器日志是否存在蜘蛛痕迹,还可以查看抓取的时间和频率等。
  3.1、百度蜘蛛:Baiduspider+(+http://百度网址/search/spider.htm)
  网上的资料百度蜘蛛名称有BaiduSpider、baiduspider等,都洗洗睡吧,那是旧黄历了。百度蜘蛛最新名称为Baiduspider。日志中还发现了Baiduspider-image这个百度旗下蜘蛛,查了下资料(其实直接看名字就可以了……),是抓取图片的蜘蛛。常见百度旗下同类型蜘蛛还有下面这些:Baiduspider-mobile(抓取wap)、Baiduspider-image(抓取图片)、Baiduspider-video
  (抓取视频)、Baiduspider-news(抓取新闻)。注:以上百度蜘蛛目前常见的是Baiduspider和Baiduspider-image两种。
  3.2、谷歌蜘蛛:Mozilla/5.0(compatible:Googlebot/2.1:+http://Google网址/bot.html)谷歌蜘蛛最新名称为"compatible; Googlebot/2.1;"。还发现了Googlebot-Mobile,看名字是抓取wap内容的。谷歌蜘蛛属于比较活跃的网站扫描程序,每隔28天左右就派出"蜘蛛"检索更新或是修改的内容。根百度蜘蛛的不同点就是谷歌蜘蛛的爬取深度要比百度蜘蛛多一些。
  3.3、360蜘蛛:360Spider,它是一个很"勤奋抓爬"的蜘蛛。User-Agent:Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0); 360Spider(compatible;?
  HaosouSpider;http://好搜网址/help/help_3_2.html。
  3.4、SOSO蜘蛛:Sosospider,也可为它颁一个"勤奋抓爬"奖的蜘蛛。搜搜早期是运用谷歌的技术谷歌有收录,搜搜肯定也会收录。在2011年搜搜已经宣布采用自己的独立搜索技术,但是搜搜的蜘蛛特性和谷歌的特点还是有着很多相似的地方。
  3.5、雅虎蜘蛛:"Yahoo! Slurp China"或者Yahoo!?
  雅虎中国蜘蛛Mozilla/5.0(compatible:Yahoo! Slurp China:+http://网址/help.html)雅虎也跟搜搜一样,网站没有被谷歌收录,在雅虎也不会有很好的收录。雅虎的蜘蛛数量比较庞大,但平均的效率都不是很高,相应的搜索结果质量也不是很高。
  雅虎英文蜘蛛:Mozilla/5.0(compatible:Yahoo! SLurp/3.0:+http://网址/help/us/ysearch.slurp),雅虎英文蜘蛛的用法和中文蜘蛛完全不相同。
  3.6、有道蜘蛛:YoudaoBot,YodaoBot Mozilla/5.0(compatible:YodaoBot/1.0:+http://网址/help/web,aster/spider/:)有道蜘蛛和其他搜索引擎蜘蛛一样,凡是高权重的网站链接一般都会被快速收率,其爬行原理也是通过URL之间进行爬行。
  3.7、搜狗蜘蛛:Sogou News Spider
  搜狗蜘蛛还包括如下这些:Sogou web spider、Sogou inst spider、Sogou spider、Sogou blog、Sogou News Spider、Sogou Orion spider,Sougou+web+robot+(+http://网址/docs/help/webmasters.htm¥07)搜狗蜘蛛的爬取深度还是比较快的,收率也比较快。"Sogou web spider;Sogou inst spider;Sogou spider2;Sogou blog;Sogou News Spider;Sogou Orion spider"目前6个,名称都带空格。线上常见"Sogou web spider/4.0" ;"Sogou News Spider/4.0" ;"Sogou inst spider/4.0" 可以为它颁个"占名为王"奖。
  4、链接布局
  蜘蛛主要通过抓取网页上的链接来发现新的页面,以此类推不停滴抓取爬行,就像一张蜘蛛网一样。爬行抓取主要按两种策略来执行:一种是深度优化爬行,第二种是广度优先爬行。
  深度优先爬行:蜘蛛是从A网页顺序到A1、A2、A3、A4爬行到A4页面之后发现没有页面了,于是又重新返回到了A页面,以此类推爬行到B1、B2、B3、B4页面。深度爬行的特点是蜘蛛会一直沿着一条线抓取进去,知道最后在返回到另外一条线上。
  广度优先爬行:指蜘蛛在一个页面上发现多个链接的情况下,首先把第一层的链接抓取一遍,然后在沿着第二层的链接向第三层的链接爬行。
  说到底,只要给蜘蛛足够的时间,无论是广度爬行还是深度爬行都能爬完整个网站的URL。我们做SEO优化要学会为蜘蛛节省宽带资源,毕竟蜘蛛的资源也不是无限制的,也会存在负载的时候。我们要把站内的路径优化好,尽量减少蜘蛛的工作。
  5、重要页面和尽量避免网页重复收集
  由于互联网的信息是在太多太杂,随着时间的累积不可能将所有的信息都收集起来,所以要尽可能地收集重要的网页。对网页重要的程度判断是居于整站的质量权重度,并非是网站好耶权重
  越高越好,需要进行合理分配权重。如果判断一个网页的重要程度其实非常简单,基本可以通过这四点来确定:
  1、网页目录越小越好,利于用户体验,节省蜘蛛爬行时间。
  2、导入相关高质量的链接,从外部导入和自身相关的链接可以增加页面权重。
  3、保持信息内容的新鲜度,一个由价值的网站基本每天都会更新,用户每天都来,蜘蛛也会天天光顾的。
  4、提供原创性的内容,原创度越高网页的重要性就越高。
  什么是重复收集,从意思上理解已经被收集过,进行了第二次的收集。这种情况不但没有提高效率,反而增加了带宽的额外支出。对于搜索引擎而言,重复的做事情是相当耗资源的,不仅做不到时效性更新,很有可能降低秒级的输出服务。
  造成重复收集的原因在于蜘蛛并没有记录过去的访问记录,还有一种可能性是多个域名301导致。因此搜索引擎在这方面增加了额外的技术,分别定义两个不同类型的表,既"已访问表"和"未访问表",根据这种技术很简单的解决了重复收录的问题。蜘蛛抓取到一个URL后,从这两个表中来判断这个链接是否已被访问过,如果没有被访问,抓取回来增加到未访问列表中区。
  蜘蛛爬行网网页D、网页A、网页C或者从网页F顺着链接爬行到网页G、网页D、网页A,蜘蛛都会调用两边的数据来判断爬取网页的重复度。
  二、预处理
  经过前面的爬行抓取流程,已经把网页内容全部抓取回来了,接下去的工作就是对这部分数据进行一个索引工作,其中包含了很多个处理流程。和爬行一样,预处理也是在后台提前完成的。
  .1、关键词提取
  搜索引擎是识别技术主要还是以文字为主。蜘蛛在爬取某个页面的同时会把大量的HTML代码抓取下来,如JavaScript、CSS、DIV标签等,这些对排名都毫无意义。首先的工作是将HTML标签、程序去除、提取页面中的文字。
  2、去除停用词
  同一个词可能在一篇网页中出现多次,如"得"、"的"、"地""是"、"啊"、"呀"、"在"、"却"、"从而"之类的无用词,反复的出现就没有什么价值了。我们称这类词为停用词,这类词尽量少用。
  3、分词技术
  分词是中文搜索引擎中特有的技术,中文信息和英文信息的差别在于:英文单词与单词之间用的是空格分离,这对于中文就行不通了。搜索引擎必须将整个句子进行切割成小单元词,例如:"我的兄弟姐妹""我"、"的"、"兄弟、"姐妹"、分词技术的效率直接影响到整个系统的效率。
  分词的方法主要有两种:基于字符串匹配的分词方法和基于统计的分词方法。
  A、基于字符串匹配的分词方法
  按不同的匹配方向,可分为正向匹配,逆向匹配和最少切词。可将这三种方法混合起来使用,既正向最大匹配、逆向最大匹配、正向最小匹配、逆向最小匹配。
  正向最大匹配:假设字典中最长的词语字数为m,先根据汉语标点符号及特征词把汉语句子切分为短语,然后去取短语的前m个字,在字库里面查找是否存在这个词语,如果存在,短语就去掉这个词;如果不存在就去掉这m个字的最后一个字,接着检查剩下的词是否是单字,若是则输出此字并将此字从短语中去掉,若不是则继续判断字库中是否存在这个词,如此反复循环,直到输出一个词,此后继续取剩余短语的前m个字反复循环。这样就可以将一个短语分成词语的组合了。
  逆向最大匹配:以句子结尾处进行分词的方法。逆向最大匹配技术最大的一个作用是用来消歧。如"富营销线下聚会在下城子镇举行"按照正向最大匹配结果为:富/营销/线/下/聚会/在/下/城子镇/举行,很显然这当中差生了歧义。下城子镇是一个地名,没有被正确地切分。采用逆向最大匹配的技术可以修正这个错误。例如设定一个分词节点大小为7,那么"在下城子镇举行"中很显然"举行"被分出来了,最后剩下"聚会在下城子镇",这样一来歧义就被消除了。
  正向最小匹配/逆向最小匹配:一般很少使用到,实际使用中逆向匹配的精准度要高于正向匹配度。
  B、基于统计分词方法
  直接调用分词词典中的若干词进行匹配,同时也使用统计技术来识别一些新的词语,将所有的统计结果匹配起来发挥切词的最高效率。
  分词词典是搜索引擎判断词语的依据,基本上收录了汉语词典当中所有的词语。如我们在搜索引擎中输入"我要减肥了","减肥"两字就会被判定为一个词语。现在网络上经常会出现一些新造的网络流行词语如"好推"、"建站"等,这样的词也都会慢慢地被收录。分词词典只有不断更新才能满足我们日常搜索判断的需求。
  4.消除噪声:网页上有各种形形色色的广告文字、广告图片、登录框、版权信息等,为了某些目的不得不放上去,这些对搜索引擎来说不是有用的东西,可以直接去掉。
  5.分析网页建立倒排文件:正向索引:经过前面几步的工作之后就开始提取关键词了,把页面转换为一个关键词组合,同时记录每一个关键词在页面上的出现频率、出现次数、格式、位置,这样每一个页面都可以记录为一串关键词组合,其中每个关键词的词频、格式、位置等权重信息也都记录在案,
  倒排索引:正向索引还不能直接用于排名。假如用户搜索关键词3,如果只用正向索引,排名程序需要扫描所有的索引中的文件,找出包含关键词3的文件,再进行相关计算。这样一来计算无法实时返回排名结果。所以搜索引擎会将正向索引数据库重新构造为倒排索引,倒排索引以关键词为索引,
  6、链接关系计算:链接关系计算是预处理中重要的一步。主流搜索引擎排名因素都包含网页之间的链接流信息。事先必须计算出页面上有哪些链接指向哪些其他页面,每个页面有哪些导入链接,链接使用了什么锚文本等种种的链接计算。Google PR是这种链接关系计算的重要代表之一。
  7.特殊文件处理:可以抓取和索引以文字为基础的多种文件类型。
  三、搜索引擎服务
  经过前面的爬行抓取和预处理过程之后已经存储了一定的数据,并且记录了重要关键词的集合,即正向索引和倒排序索引中的关键词集合,每个关键词赋予特殊的编码形成了一个倒排文件,输入宇哥关键词就能马上从相关的文档编号中找到所需信息。
  比如说;用户输入关键词"减肥"查出来的结果还是比较模糊的,用户寻找的是减肥方法或者减肥教练等,这个大部分用户搜索的习惯。有很多用户搜索减肥好方法、减肥瘦肚子、女生最实用的减肥方法、减肥小窍门一天减一斤、怎样又快又有效的减肥,这些关键词都属于服务的关键词。