SEO培训_网站优化培训_百度关键词排名_海瑶SEO学堂

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1184|回复: 0

SEO培训教程之搜索引擎工作原理

[复制链接]

566

主题

576

帖子

6464

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
6464
QQ
发表于 2015-3-9 20:54:00 | 显示全部楼层 |阅读模式
SEO培训教程之搜索引擎工作原理

网站优化,只有了解了搜索引擎工作原理,我们才能更好的去针对搜索引擎做出相关优化工作。搜索引擎(search engine)是指根据一定的策略、运用特定的计算机程序从互联网上搜集信息,在对信息进行组织和处理后,为用户提供检索服务,将用户检索相关的信息展示给用户的系统。搜索引擎包括全文索引、目录索引、元搜索引擎、垂直搜索引擎、集合式搜索引擎、门户搜索引擎与免费链接列表等。百度和谷歌等是搜索引擎的代表
  搜索引擎的“三板斧”:数据搜集—>预处理【索引】—>排名。如图1
7.png
图1
  数据搜集
  即数据的搜集阶段,将网页从浩瀚如海的互联网世界搜集到自己的数据库中进行存储。搜索引擎派出一个能够在网上发现新网页并抓取文件的程序,这个程序通常称之为蜘蛛(Spider)。搜索引擎从已知的数据库出发,就像正常用户的浏览器一样访问这些网页并抓取文件。搜索引擎通过这些爬虫去爬互联网上的外链,从这个网站爬到另一个网站,去跟踪网页中的链接,访问更多的网页,这个过程就叫爬行。这些新的网址会被存入数据库等待抓取。所以跟踪网页链接是搜索引擎蜘蛛(Spider)发现新网址的最基本的方法。搜索引擎抓取的页面文件与用户浏览器得到的完全一样,抓取的文件存入数据库。
  1、搜索引擎抓取系统
  Spider抓取系统是搜索引擎数据来源的重要保证,如果把web理解为一个有向图,那么spider的工作过程可以认为是对这个有向图的遍历。从一些重要的种子URL开始,通过页面上的超链接关系,不断的发现新URL并抓取,尽最大可能抓取到更多的有价值网页。对于类似百度这样的大型spider系统,因为每时每刻都存在网页被修改、删除或出现新的超链接的可能,因此,还要对spider过去抓取过的页面保持更新,维护一个URL库和页面库。
  (1)spider抓取系统的基本框架
  如图2为spider抓取系统的基本框架图,其中包括链接存储系统、链接选取系统、dns解析服务系统、抓取调度系统、网页分析系统、链接提取系统、链接分析系统、网页存储系统。

图2
  (2)spider抓取过程中涉及的网络协议
  搜索引擎与资源提供者之间存在相互依赖的关系,其中搜索引擎需要站长为其提供资源,否则搜索引擎就无法满足用户检索需求;而站长需要通过搜索引擎将自己的内容推广出去获取更多的受众。spider抓取系统直接涉及互联网资源提供者的利益,为了使搜素引擎与站长能够达到双赢,在抓取过程中双方必须遵守一定的规范,以便于双方的数据处理及时对接。这种过程中遵守的规范也就是日常中我们所说的一些网络协议。以下简单列举:
  http协议:超文本传输协议,是互联网上应用最为广泛的一种网络协议,客户端和服务器端请求和应答的标准。客户端一般情况是指终端用户,服务器端即指网站。终端用户通过浏览器、蜘蛛等向服务器指定端口发送http请求。发送http请求会返回对应的httpheader信息,可以看到包括是否成功、服务器类型、网页最近更新时间等内容。
  https协议:实际是加密版http,一种更加安全的数据传输协议。
  UA属性:UA即user-agent,是http协议中的一个属性,代表了终端的身份,向服务器端表明我是谁来干嘛,进而服务器端可以根据不同的身份来做出不同的反馈结果。
  robots协议:robots.txt是搜索引擎访问一个网站时要访问的第一个文件,用以来确定哪些是被允许抓取的哪些是被禁止抓取的。robots.txt必须放在网站根目录下,且文件名要小写。百度严格按照robots协议执行,另外,同样支持网页内容中添加的名为robots的meta标签,index、follow、nofollow等指令。
  (3)spider抓取的基本过程
  spider的基本抓取过程可以理解为如图3的流程图:

图3
  (4)Baiduspider 主要抓取策略类型

  上图看似简单,但其实Baiduspider在抓取过程中面对的是一个超级复杂的网络环境,为了使系统可以抓取到尽可能多的有价值资源并保持系统及实际环境中页面的一致性同时不给网站体验造成压力,会设计多种复杂的抓取策略。以下做简单介绍:

  抓取友好性

  互联网资源庞大的数量级,这就要求抓取系统尽可能的高效利用带宽,在有限的硬件和带宽资源下尽可能多的抓取到有价值资源。这就造成了另一个问题,耗费被抓网站的带宽造成访问压力,如果程度过大将直接影响被抓网站的正常用户访问行为。因此,在抓取过程中就要进行一定的抓取压力控制,达到既不影响网站的正常用户访问又能尽量多的抓取到有价值资源的目的。

  通常情况下,最基本的是基于ip的压力控制。这是因为如果基于域名,可能存在一个域名对多个ip(很多大网站)或多个域名对应同一个ip(小网站共享ip)的问题。实际中,往往根据ip及域名的多种条件进行压力调配控制。同时,站长平台也推出了压力反馈工具,站长可以人工调配对自己网站的抓取压力,这时百度spider将优先按照站长的要求进行抓取压力控制。

  对同一个站点的抓取速度控制一般分为两类:其一,一段时间内的抓取频率;其二,一段时间内的抓取流量。同一站点不同的时间抓取速度也会不同,例如夜深人静月黑风高时候抓取的可能就会快一些,也视具体站点类型而定,主要思想是错开正常用户访问高峰,不断的调整。对于不同站点,也需要不同的抓取速度。

  常用抓取返回码示意

  简单介绍几种百度支持的返回码:

  1)最常见的404代表“NOT FOUND”,认为网页已经失效,通常将在库中删除,同时短期内如果spider再次发现这条url也不会抓取;

  2)503代表“Service Unavailable”,认为网页临时不可访问,通常网站临时关闭,带宽有限等会产生这种情况。对于网页返回503状态码,百度spider不会把这条url直接删除,同时短期内将会反复访问几次,如果网页已恢复,则正常抓取;如果继续返回503,那么这条url仍会被认为是失效链接,从库中删除。

  3)403代表“Forbidden”,认为网页目前禁止访问。如果是新url,spider暂时不抓取,短期内同样会反复访问几次;如果是已收录url,不会直接删除,短期内同样反复访问几次。如果网页正常访问,则正常抓取;如果仍然禁止访问,那么这条url也会被认为是失效链接,从库中删除。

  4)301代表是“Moved Permanently”,认为网页重定向至新url。当遇到站点迁移、域名更换、站点改版的情况时,我们推荐使用301返回码,同时使用站长平台网站改版工具,以减少改版对网站流量造成的损失。

  多种url重定向的识别

  互联网中一部分网页因为各种各样的原因存在url重定向状态,为了对这部分资源正常抓取,就要求spider对url重定向进行识别判断,同时防止作弊行为。重定向可分为三类:http 30x重定向、meta refresh重定向和js重定向。另外,百度也支持Canonical标签,在效果上可以认为也是一种间接的重定向。

  抓取优先级调配

  由于互联网资源规模的巨大以及迅速的变化,对于搜索引擎来说全部抓取到并合理的更新保持一致性几乎是不可能的事情,因此这就要求抓取系统设计一套合理的抓取优先级调配策略。主要包括:深度优先遍历策略、宽度优先遍历策略、pr优先策略、反链策略、社会化分享指导策略等等。每个策略各有优劣,在实际情况中往往是多种策略结合使用以达到最优的抓取效果。

  重复url的过滤

  spider在抓取过程中需要判断一个页面是否已经抓取过了,如果还没有抓取再进行抓取网页的行为并放在已抓取网址集合中。判断是否已经抓取其中涉及到最核心的是快速查找并对比,同时涉及到url归一化识别,例如一个url中包含大量无效参数而实际是同一个页面,这将视为同一个url来对待。

  暗网数据的获取

  互联网中存在着大量的搜索引擎暂时无法抓取到的数据,被称为暗网数据。一方面,很多网站的大量数据是存在于网络数据库中,spider难以采用抓取网页的方式获得完整内容;另一方面,由于网络环境、网站本身不符合规范、孤岛等等问题,也会造成搜索引擎无法抓取。目前来说,对于暗网数据的获取主要思路仍然是通过开放平台采用数据提交的方式来解决,例如“百度站长平台”“百度开放平台”等等。

  抓取反作弊

  spider在抓取过程中往往会遇到所谓抓取黑洞或者面临大量低质量页面的困扰,这就要求抓取系统中同样需要设计一套完善的抓取反作弊系统。例如分析url特征、分析页面大小及内容、分析站点规模对应抓取规模等等。
  2、链接跟踪
  蜘蛛是顺着链接爬行和抓取页面的。如何快速抓取到对用户来说相对重要的信息以及达到广阔的覆盖无疑是搜索引擎需要重点考虑的问题。由于互联网上无数的网站页面,搜索引擎蜘蛛无法将所有的页面都下载保存到服务器。因此,许多搜索引擎的网络蜘蛛不是所有的页面都抓取的,只是抓取那些重要的网页,而在抓取的时候评价重要性主要的依据是某个网页的链接广泛度及外部链接的数量与质量。所以在给网站加外链时不要只给首页外链,其他页面也要加(这和外链的随机性也有关)。
  在抓取网页的时候,搜索引擎蜘蛛一般有两种策略:广度优先和深度优先。
  广度优先是指搜索引擎蜘蛛会先抓取起始网页中链接的所有网页,然后再选择其中的一个链接网页,继续抓取在此网页中链接的所有网页。这是最常用的方式,因为这个方法可以让搜索引擎蜘蛛并行处理,提高其抓取速度。


6.png

  深度优先是指搜索引擎蜘蛛会从起始页开始,一个链接一个链接跟踪下去,处理完这条线路之后再转入下一个起始页,继续跟踪链接。这个方法有个优点是搜索引擎蜘蛛在设计的时候比较容易。
5.png
  广度抓取有助于获取到更多的信息,深度抓取有助于得到更全面的信息。搜索引擎蜘蛛在抓取数据时,通常会两种方式都采用,但是想比较来说,广度抓取要多于深度抓取。
  当然这是搜索引擎抓取数据的二大策略,当然其中还夹杂着一些加入了人工智能的策略,比如:
  a、热点优先策略:对于爆发式的热点关键词进行优先抓取,而且不需要经过严格的去重和过滤,因为会有新的链接来覆盖以及用户的主动选择。
  b、权威优先策略:搜索引擎会给每个网站分配一个权威度,通过网站历史、网站更新等来确定网站的权威度,优先抓取权威度高的网站链接。
  c、用户点击策略:当大部分搜索一个行业词库内的关键词时,频繁的点击同一个网站的搜索结果,那么搜索引擎会更频繁的抓取这个网站。
  d、历史参考策略:对于保持频繁更新的网站,搜索引擎会对网站建立更新历史,根据更新历史来预估未来的更新量以及确定抓取频率。
  3、地址库
  为了避免重复爬行和抓取网址,搜索引擎会建立一个地址库,记录已经被发现还没有抓取的页面,以及已经被抓取的页面。地址库中的 URL 有几个来源。
  1. 一是人工录入的种子网站。
  2. 二是蜘蛛抓取页面后,从 HTML 中解析出新的链接 URL,与地址库中的数据对比,如果是地址库中没有的网址,就存入待访问地址库。
  3. 三是站长通过搜索引擎网页提交表格提交进来的网址。
  蜘蛛按重要性从待访问地址库中提取 URL,访问并抓取页面,然后把这个 URL 从待访问地址库中删除,放进已访问地址库中。大部分主流搜索引擎都提供一个表格,让站长提交网址。不过这些提交来的网址都只是存入地址库而已,是否收录还要看页面重要性如何。搜索引擎所收录的绝大部分页面是蜘蛛自己跟踪链接得到的。可以说提交页面基本上是毫无用处的,搜索引擎更喜欢自己沿着链接发现新页面。
  4、文件存储
  链接跟踪完毕,需要将跟踪到的信息进行存储。存储的对象,第一是url,第二是页面内容(文件大小、最后一次更新时间、http状态码、页面源代码等等)。
————————————————————————————————————————
  预处理【索引】
  数据抓取完毕,就需要进行预处理了,一般也叫索引。主要会从提取文字、中文分词、去停止词、消噪、去重、正向索引、倒排索引、链接分析、特殊文件处理等几个方面来进行。
4.png

  1、提取文字
  很好理解的一部,将源代码中的文字提取出来。当然需要注意的是,这里面会包括meta信息以及一些替代文字,除了用户可见的文字信息外,还有代码中的文字信息(例如alt标签)。目前搜索引擎都是以文字为基础。蜘蛛抓取的HTML代码中除了用户在浏览器看到的文字外还有大量HTML格式标签、DIV+CSS标签、JavaScript程序等无法用于排名的内容。所以搜索引擎第一步就是要去除从HTML代码中抓取的标签、程序等,提取可以用于排名处理的页面文字内容。除了可见文字,搜索引擎也会提取一些特殊的包含文字信息的代码,如Meta标签中的文字、alt标签、FLASH文件代替的文字、链接的锚文本等等。
  2、分词
  中文分词 (Chinese Word Segmentation) 指的是将一个汉字序列切分成一个一个单独的词。分词就是将连续的字序列按照一定的规范重新组合成词序列的过程。我们知道,在英文的行文中,单词之间是以空格作为自然分界符的,而中文只是字、句和段能通过明显的分界符来简单划界,唯独词没有一个形式上的分界符,虽然英文也同样存在短语的划分问题,不过在词这一层上,中文比之英文要复杂的多、困难的多。分词方法主要包括:基于理解的分词方法、基于字符串匹配的分词方法、基于统计的分词方法。这里就不多说了,分词是个难啃的骨头,如果感兴趣可以看一下《百度分词》。
3.png
  3、去停止词
  无论英文还是中文,页面内容中都会有一些出现频率很高,却对内容没有任何影响的词,如“的”、“地”、“得”之类的助词,“啊”、“哈”、“呀”之类的感叹词,“从而”、“以”、“却”之类的介词,这些词被称为停止词,因为它们对页面主要意思没有什么影响。英文中常见的停止词如the,a,an,to,of等。搜索引擎在索引页面之前会去掉这些停止词,使索引数据主题更为突出,减少无谓的计算量。
  4、消噪
  对搜索引擎来说,并不是网页上的所有部分它都需要抓取,有一些部分对排名计算是没有意义的,比如导航条、版权文字说明、广告等等区块。考虑到搜索引擎需要处理的网页数量非常庞大,这部分无意义内容的绝对量也是非常大的,为了节省计算资源,提升排名计算的速度,搜索引擎在预处理时会将这些内容识别后剔除出去。这个过程就称为消噪。
  现在搜索引擎应用的消噪技术可分为三类:基于网页结构的方法,基于模版的方法和基于可视化信息的方法。
  A、基于可视化信息的方法。是指利用页面中元素的布局信息,从而能够利用布局信息对页面进行划分,保留页面中间区域,而其它区域则认为是噪音。
  B、基于网页结构的方法。即根据html标签对页面来分区,分出一些页头、导航、正文、广告等等的区块,只抓取正文等重要的部分。
  C、基本模版的方法。指的是从一组网页中提取出相同的模板,而后利用这些模版从网页中抽取有用的信息。
  如何人工减噪?
  A、搜索引擎会基于可视化信息识别噪音,因此SEO人员在建设网页时应尽量遵循通用的原则,将正文内容安排在页面中间区域,而不要弄一些非常个性化的页面,增加搜索引擎识别噪音的难度。
  B、搜索引擎会基于网页结构识别噪音,因此SEO人员在处理网页结构时建议引入JS代码,将页头、广告、版权声明等内容通过JS调用来实现。当然是一些你不想被抓取的版块,因为这些区块在站内很可能都是重复出现的,特别是广告、版权、评论这些。一旦被收录,很容易造成重复内容堆积,影响整站的内容质量评分。
  C、搜索引擎会基于网页模版识别噪音,因此SEO人员在建设网页时应尽量采用同一套模版,尤其是在改版的时候不要轻易动模版,以帮助搜索引擎识别噪音区块。
  5、去重
  经过去停顿,去噪之后剩下的词组,已经可以很好的表达出页面的主体意思了。为了便于使得内容不被搜索引擎重复收录,搜索引擎需要一个算法来进行去重处理。比如比较知名且常用的为MD5算法,搜索引擎根据特征关键词计算指纹区分。《搜索引擎判断原创的指纹算法
  6、正向索引
  正向索引简称为索引。经过前五步之后,接下来搜索引擎将提取文中关键词,按分词程序划分好的词,同时记录每个词在页面中出现的频率、出现的次数、格式(如加粗、倾斜、黑体、H标签、加颜色、锚文字等)、位置(如页面第一段文字或者最后一段等)。然后把这些词语记录为串关键词集合,那么这些词的相关信息如格式、权重等也会记录在案。实际在搜索引擎中每个关键词也被转换为ID形式记录,然后每个文件ID对应一串关键词ID。这种每个文件ID对应一个串关键词ID这样的数据结构被称之为正向索引。比如文章A对应1、2、3这三个关键词,文章B对应2、4、5这三个关键词。

2.png
  7、倒排索引
  正向索引还不能直接运用到关键词排名,假设用户搜索关键词2,那么搜索引擎讲扫描索引库中所有文件,这样时间太长无法满足用户返回结果的速度,所以这里运用到了倒排索引,把关键词ID映射到文章ID,比如关键词2对应文章A、文章B,如此一来大大缩短搜索引擎扫描索引库中的文件,缩短扫描时间。
  8、链接算法
  在此阶段,各个页面之间的链接关系也会被搜集。页面中有哪些导入链接,这些链接都指向哪里,哪些链接又指向这个页面,链接用的是URL还是锚文字,这些复杂的链接关系网就形成了页面的链接权重,此时锚文本将被作为重要排名依据,当量广泛的锚文本将被列入计算关键词排名的步骤中。
  9、特殊文件的处理
  除了HTML 文件外,搜索引擎通常还能抓取和索引以文字为基础的多种文件类型,如 PDF、Word、WPS、XLS、PPT、TXT 文件等。我们在搜索结果中也经常会看到这些文件类型。但搜索引擎还不能处理图片、视频、Flash 这类非文字内容,也不能执行脚本和程序。
————————————————————————————————————————
  排名 
  索引文件建立完毕之后,就来排名了。排名也从几个方面进行的:
  1、搜索词的处理。
       这一步和前面的预处理一样也要中文分词、去停止词。还要进行指令处理,拼写错误矫正,整合搜索触发等。这个上面基本是一样的。
  2、文件匹配。
  从上面我们看那到搜索引擎的蜘蛛是无时无刻的都在爬行和抓取,另外不断对抓取的数据进行整理归纳以及存储。这些过程并不是用户在搜索的时候进行的,而是在搜索之前就预处理好的,真正当用户搜索某个关键词时,搜索引擎只需要在自己的数据库中进行查找,而不是实时的对互联网上所有的网站进行查找。搜索引擎就会在和该关键词对应的所有文件中进行简单的计算和匹配,找到匹配页面。
  3、初始子集选择。
  为了更加快速的满足用户的需要,搜索引擎需要从所有的相关页面中进行选择,只计算权重稍高的页面返回给用户,这个过程就是常说的初始子集的筛选。大家可以试想,当我们搜索某个关键词时,往往包含这个关键词的页面数量是巨大的,甚至几十万、上百万。如果搜索引擎从这么大的数据中进行匹配的话时间显然更长,为了更好的满足用户的需求,实际中搜索引擎只会选择哪些权重高的页面去匹配(1000个左右)。
  4、相关性计算。
  (1)关键词常用程度。经过分词后的多个关键词,对整个搜索字符串的意义贡献并不相同。越常用的词对搜索词的意义贡献越小,越不常用的词对搜索词的意义贡献越大。举个例子,假设用户输入的搜索词是“我们冥王星”。“我们”这个词常用程度非常高,在很多页面上会出现。它对“我们冥王星”这个搜索词的辨识程度和意义相关度贡献就很小。
  找出那些包含“我们”这个词的页面,对搜索排名相关性几乎没有什么影响,有太多页面包含“我们”这个词。而“冥王星”这个词常用程度就比较低,对“我们冥王星”这个搜索词的意义贡献要大得多。那些包含“冥王星”这个词的页面,对“我们冥王星”这个搜索词会更为相关。
  常用词的极致就是停止词,对页面意义完全没有影响。所以搜索引擎对搜索词串中的关键词并不是一视同仁地处理,而是根据常用程度进行加权。不常用的词加权系数高,常用词加权系数低,排名算法对不常用的词给予更多关注。我们假设A、B两个页面都各出现“我们”及“冥王星”两个词。但是“我们”这个词在A页面出现于普通文字中,“冥王星”这个词在A页面出现于标题标签中。B页面正相反,“我们”出现在标题标签中,而“冥王星”出现在普通文字中。那么针对“我们冥王星”这个搜索词,A页面将更相关。
  (2)词频及密度。一般认为在没有关键词堆积的情况下,搜索词在页面中出现的次数多,密度越高,说明页面与搜索词越相关。当然这只是一个大致规律,实际情况未必如此,所以相关性计算还有其他因素。出现频率及密度只是因素的一部分,而且重要程度越来越低。
  (3)关键词位置及形式。就像在索引部分中提到的,页面关键词出现的格式和位置都被记录在索引库中。关键词出现在比较重要的位置,如标题标签、黑体、H1等,说明页面与关键词越相关。这一部分就是页面seo所要解决的。
  (4)关键词距离。切分后的关键词完整匹配地出现,说明与搜索词最相关。比如搜索“呼叫中心”时,页面上连续完整出现“呼叫中心”四个字是最相关的。如果“呼叫”和“中心”两个词没有连续匹配出现,出现的距离近一些,也被搜索引擎认为相关性稍微大一些。
  (5)链接分析及页面权重。除了页面本身的因素,页面之间的链接和权重关系也影响关键词的相关性。其中最重要的是锚文字。页面有越多以拽索词为锚文字的导入链接,说明页面的相关性越强。链接分析还包括了链接源页面本身的主题、锚文字周围的文字等。
  5、排名过滤及调整,过滤一些作弊等。
  6、排名显示。
  7、搜索缓存。
  搜索引擎的缓存也即cache,是计算机领域非常常用的一种技术,我们最熟悉的,恐怕就是浏览器的缓存。搜索引擎的缓存可以这样简单描述:在高速内存硬件设备开辟一块数据存储区,用来存储搜索用户的查询、索引数据、搜索的中间结果或者最终的搜索结果。缓存的大小是有限度的,不可能无限存储数据。因此搜索引擎会采取缓存更新策略和缓存淘汰策略管理维护缓存区存储的数据。搜索引擎缓存的价值搜索引擎缓存具有两个价值:一、加快响应搜索用户查询的速度,提高搜索用户体验;二、减少搜索引擎后台的计算量,节省计算资源。
  8、查询及点击日志。
  对搜索用户的搜索做统计,并根据该用户搜索习惯给出相应结果。
————————————————————————————————————————
  根据下面一张图,再细细回顾一下:
1.png
相关学习教程:



转载文章请注明:SEO培训教程

本文地址:SEO培训http://seo.cao4.net/thread-72-1-1.html

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

免费诊断网站
在线咨询
咨询热线
15859578444
微信扫一扫
直接访问本页内容

QQ|手机版|小黑屋|SEO学堂

GMT+8, 2017-8-22 01:54 , Processed in 0.908347 second(s), 36 queries .

Powered by SEO教程 X3.2 SEO培训 网站优化排名 网站优化①群:434931228 百度快速排名②群:199706487 本站业务:百度SEO培训,关键词排名服务,网站降权诊断,SEO教程视频分享

© 2001-2013 海瑶SEO学堂

快速回复 返回顶部 返回列表