SEO基础优化

SEOer必知-百度搜索引擎工作原理

字号+ 作者:木子seo 来源:郑州seo木子 2015-10-06 15:11 我要评论( )

SEOer必知-百度搜索引擎工作原理。作为一名专业的seo人员,需要时刻关注网站的收录情况。因此,就必须要对搜索引擎的收录原理有一个清晰的认识。其实,关于百度以及其它搜索引擎的工作原理,基本上都是大同小异的。下面,我们以百度搜索引擎为例,给大家详细

  SEOer必知-百度搜索引擎工作原理。作为一名专业的seo人员,需要时刻关注网站的收录情况。因此,就必须要对搜索引擎的收录原理有一个清晰的认识。其实,关于百度以及其它搜索引擎的工作原理,基本上都是大同小异的。下面,我们以百度搜索引擎为例,给大家详细的讲解一下-百度搜索引擎的工作原理。当然,随着互联网科技的进步,搜索引擎也在发生着巨大的变化,我们以最新的百度官方资料为主,加入小编木子多年来的从业经验,希望能给各站长在该方面有一个全新的认识;

  搜索引擎的工作原理其实很简单,首先搜索引擎大致分为4个部分,第一个部分就是蜘蛛爬虫,第二个部分就是数据分析系统,第三个部分是索引系统,第四个就是查询系统咯,当然这只是基本的4个部分!

  Spider抓取系统的基本框架

  首先让我们看看百度的官方解释:互联网信息爆发式增长,如何有效的获取并利用这些 信息是搜索引擎工作中的首要环节。数据抓取系统作为整个搜索系统中的上游,主要负责互联网信息的搜集、保存、更新环节,它像蜘蛛一样在网络间爬来爬去,因 此通常会被叫做“spider”。例如我们常用的几家通用搜索引擎蜘蛛被称为:Baiduspdier、 Googlebot、Sogou Web Spider等。

  Spider抓取系统是搜索引擎数据来源的重要保证,如果把web理解为一个有向图,那么spider的工作 过程可以认为是对这个有向图的遍历。从一些重要的种子 URL开始,通过页面上的超链接关系,不断的发现新URL并抓取,尽最大可能抓取到更多的有价值网页。对于类似百度这样的大型spider系统,因为每时 每刻都存在网页被修改、删除或出现新的超链接的可能,因此,还要对spider过去抓取过的页面保持更新,维护一个URL库和页面库。

  下图为spider抓取系统的基本框架图,其中包括链接存储系统、链接选取系统、dns解析服务系统、抓取调度系统、网页分析系统、链接提取系统、链接分析系统、网页存储系统。Baiduspider即是通过这种系统的通力合作完成对互联网页面的抓取工作。

搜索引擎抓取网站收录的原理图

  Baiduspider主要抓取策略类型

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

  1、抓取友好性

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

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

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

  由于互联网科技的进步,导致搜索引擎的技术也是suizh但随着科技的进步、互联网业的发展,各家搜索引擎都发生着巨大的变化,并且这些变化都是飞 快的。我们设计这个章节的目的,除了从官方的角度发出一些声音、纠正一些之前的误读外,还希望通过不断更新内容,与百度搜索引擎发展保持同步,给各位站长 带来最新的、与百度高相关的信息。本章主要内容分为四个章节,分别为:抓取建库;检索排序;外部投票;结果展现。

  2、常用抓取返回码示意  (请注意,百度搜索引擎返回的状态码对网站收录异常诊断分析十分重要)

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

  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返回码,同时使用站长平台网站改版工具,以减少改版对网站流量造成的损失。

  3、多种url重定向的识别

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

  4、抓取优先级调配

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

  5、重复url的过滤

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

  6、暗网数据的获取

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

  7、抓取反作弊

  spider在抓取过程中往往会遇到所谓抓取黑洞或者面临大量低质量页面的困扰,这就要求抓取系统中同样需要设计一套完善的抓取反作弊系统。例如分析url特征、分析页面大小及内容、分析站点规模对应抓取规模等等。

  下边我们来讲搜索引擎的工作流程:

  什么是搜索引擎蜘蛛,什么是爬虫程序?

  搜索引擎蜘蛛程序,其实就是搜索引擎的一个自动应用程序,它的作用是什么呢?其实很简单,就是在互联网中浏览信息,然后把这些信息都抓取到搜索引擎的服务器上,然后建立索引库等等,我们可以把搜索引擎蜘蛛当做一个用户,然后这个用户来访问我们的网站,然后在把我们网站的内容保存到自己的电脑上!比较好理解。

  搜索引擎蜘蛛是怎样抓取网页的呢?

  发现某一个链接 → 下载这一个网页 → 加入到临时库 → 提取网页中的链接 → 再下载网页 → 循环

  首先搜索引擎的蜘蛛需要去发现链接,至于怎么发现就简单了,就是通过链接链接链接。搜索引擎蜘蛛在发现了这个链接后会把这个网页下载下来并且存入到临时的库中,当然在同时,会提取这个页面所有的链接,然后就是循环。

  搜索引擎蜘蛛几乎是24小时不休息的(在此为它感到悲剧,没有假期。哈哈。)那么蜘蛛下载回来的网页怎么办呢?这就需要到了第二个系统,也就是搜索引擎的分析系统。

  搜索引擎的蜘蛛抓取网页有规律吗?

  这个问题问的好,那么搜索引擎蜘蛛抓取网页到底有规律吗?答案是有!

  如果蜘蛛胡乱的去抓取网页,那么就费死劲了,互联网上的网页,每天都增加那么那么那么多,蜘蛛怎么可以抓取的过来呢?所以说,蜘蛛抓取网页也是有规律的!

  蜘蛛抓取网页策略1:深度优先

  什么是深度优先?简单的说,就是搜索引擎蜘蛛在一个页面发现一个连接然后顺着这个连接爬下去,然后在下一个页面又发现一个连接,然后就又爬下去并且全部抓取,这就是深度优先抓取策略。大家看下图

深度优先

  在上图中就是深度优先的示意图,我们假如网页A在搜索引擎中的权威度是最高的,假如D网页的权威是最低的,如果说搜索引擎蜘蛛按照深度优先的策略来抓取网页,那么就会反过来了,就是D网页的权威度变为最高,这就是深度优先!

  蜘蛛抓取网页策略2:宽度优先

  宽度优先比较好理解,就是搜索引擎蜘蛛先把整个页面的链接全部抓取一次,然后在抓取下一个页面的全部链接。

宽度优先

  上图呢,就是宽度优先的示意图!这其实也就是大家平时所说的扁平化结构,大家或许在某个神秘的角落看到一篇文章,告诫大家,网页的层度不能太多,如果太多会导致收录很难,这就是来对付搜索引擎蜘蛛的宽度优先策略,其实就是这个原因。

  蜘蛛抓取网页策略3:权重优先

  如果说宽度优先比深度优先好,其实也不是绝对的,只能说是各有各的好处,现在搜索引擎蜘蛛一般都是两种抓取策略一起用,也就是深度优先+宽度优先,并且在使用这两种策略抓取的时候,要参照这条连接的权重,如果说这条连接的权重还不错,那么就采用深度优先,如果说这条连接的权重很低,那么就采用宽度优先!

  那么搜索引擎蜘蛛怎样知道这条连接的权重呢?

  这里有2个因素:1、层次的多与少;2、这个连接的外链多少与质量;

  那么如果层级太多的链接是不是就不会被抓取呢?这也不是绝对的,这里边要考虑许多因素,我们在后边的进阶中会降到逻辑策略,到时候我在详细的给大家说!

  蜘蛛抓取网页策略4:重访抓取

  我想这个比较好理解,就是比如昨天搜索引擎的蜘蛛来抓取了我们的网页,而今天我们在这个网页又加了新的内容,那么搜索引擎蜘蛛今天就又来抓取新的内容,这就是重访抓取!重访抓取也分为两个:

  1、全部重访

  所谓全部重访指的是蜘蛛上次抓取的链接,然后在这一个月的某一天,全部重新去访问抓取一次!

  2、单个重访

  单个重访一般都是针对某个页面更新的频率比较快比较稳定的页面,如果说我们有一个页面,1个月也不更新一次。

  那么搜索引擎蜘蛛第一天来了你是这个样子,第二天,还是这个样子,那么第三天搜索引擎蜘蛛就不会来了,会隔一段时间在来一次,比如隔1个月在来一次,或者等全部重访的时候在更新一次。

  以上呢,就是搜索引擎蜘蛛抓取网页的一些策略!那么我们上边说过,在搜索引擎蜘蛛把网页抓取回来,就开始了第二个部分,也就是数据分析的这个部分。

  数据分析系统(来看看,百度搜索引擎是如何处理抓取到的网站信息的呢?)

  数据分析系统,是处理搜索引擎蜘蛛抓取回来的网页,那么数据分析这一块又分为了一下几个:

  1、网页结构化

  简单的说,就是把那些html代码全部删掉,提取出内容。

  2、消噪

  消噪是什么意思呢?在网页结构化中,已经删掉了html代码,剩下了文字,那么消噪指的就是留下网页的主题内容,删掉没用的内容,比如版权!

  3、查重

  查重比较好理解,就是搜索引擎查找重复的网页与内容,如果找到重复的页面,就删除。

  4、分词

  分词是神马东西呢?就是搜索引擎蜘蛛在进行了前面的步骤,然后提取出正文的内容,然后把我们的内容分成N个词语,然后排列出来,存入索引库!同时也会计算这一个词在这个页面出现了多少次。

  5、链接分析

  这一个步骤就是我们平时所做的做烦躁的工作,搜索引擎会查询,这个页面的反向链接有多少,导出链接有多少以及内链,然后给这个页面多少的权重等。

  数据索引系统

  在进行了上边的步骤之后,搜索引擎就会把这些处理好的信息放到搜索引擎的索引库中。那么这个索引库又大致分为以下两个系统:

  正排索引系统

  什么是正排索引?简单的说,就是搜索引擎把所有URL都加上一个编号,然后这个编号对应的就是这个URL的内容,包括这个URL的外链,关键词密度等等数据。

  搜索引擎简单的工作原理概况

  搜索引擎蜘蛛发现连接 → 根据蜘蛛的抓取策略抓取网页 → 然后交到分析系统的手中 → 分析网页 → 建立索引库

  OK,这节课可算是完了。太不容易啦我,今天只是对搜索引擎工作的一个简单的讲说,因为搜索引擎的非常复杂的一个系统,不可能几十分钟就可以全方位的讲道,我们在进阶或者高级教程中会慢慢的讲到!

  搜索引擎抓取网站的原理知识扩展(仅作为补充知识)

  Baiduspider抓取过程中涉及的网络协议

  刚才提到百度搜索引擎会设计复杂的抓取策略,其实搜索引擎与资源提供者之间存在相互依赖的关系,其中搜索引擎需要站长为其提供资源,否则搜索引擎就无法满足用户检索需求;而站长需要通过搜索引擎将自己的 内容推广出去获取更多的受众。spider抓取系统直接涉及互联网资源提供者的利益,为了使搜素引擎与站长能够达到双赢,在抓取过程中双方必须遵守一定的 规范,以便于双方的数据处理及对接。这种过程中遵守的规范也就是日常中我们所说的一些网络协议。

  以下简单列举:

  http 协议:超文本传输协议,是互联网上应用最为广泛的一种网络协议,客户端和服务器端请求和应答的标准。客户端一般情况是指终端用户,服务器端即指网 站。终端用户通过浏览器、蜘蛛等向服务器指定端口发送http请求。发送http请求会返回对应的httpheader信息,可以看到包括是否成功、服务 器类型、网页最近更新时间等内容。

  https协议:实际是加密版http,一种更加安全的数据传输协议。

  UA属性:UA即user-agent,是http协议中的一个属性,代表了终端的身份,向服务器端表明我是谁来干嘛,进而服务器端可以根据不同的身份来做出不同的反馈结果。

  robots 协议:robots.txt是搜索引擎访问一个网站时要访问的第一个文件,用以来确定哪些是被允许抓取的哪些是被禁止抓取的。 robots.txt必须放在网站根目录下,且文件名要小写。详细的robots.txt写法可参考 http://www.robotstxt.org 。百度严格按照robots协议执行,另外,同样支持网页内容中添加的名为robots的meta标 签,index、follow、nofollow等指令。

  造成Baiduspider抓取异常的原因 (如果您的网站不被百度搜索引擎所收录,请仔细的看看这个部分

  有一些网页,内容优质,用户也可以正常访问,但是Baiduspider却无法正常访问并抓取,造成搜索结果覆盖率缺失,对百度搜索引擎对站点都是一种损失,百度把这种情况叫“抓取异常”。对于大量内容无法正常抓取的网站,百度搜索引擎会认为网站存在用户体验上的缺陷,并降低对网站的评价,在抓取、索引、排序上都会受到一定程度的负面影响,最终影响到网站从百度获取的流量。

  下面向站长介绍一些常见的抓取异常原因:

  1.服务器连接异常

  服务器连接异常会有两种情况:一种是站点不稳定,Baiduspider尝试连接您网站的服务器时出现暂时无法连接的情况;一种是Baiduspider一直无法连接上您网站的服务器。

  造成服务器连接异常的原因通常是您的网站服务器过大,超负荷运转。也有可能是您的网站运行不正常,请检查网站的web服务器(如apache、iis)是否安装且正常运行,并使用浏览器检查主要页面能否正常访问。您的网站和主机还可能阻止了Baiduspider的访问,您需要检查网站和主机的防火墙。

  2.网络运营商异常:网络运营商分电信和联通两种,Baiduspider通过电信或网通无法访问您的网站。如果出现这种情况,您需要与网络服务运营商进行联系,或者购买拥有双线服务的空间或者购买cdn服务。

  3.DNS 异常:当Baiduspider无法解析您网站的IP时,会出现DNS异常。可能是您的网站IP地址错误,或者域名服务商把Baiduspider封禁。请使用WHOIS或者host查询自己网站IP地址是否正确且可解析,如果不正确或无法解析,请与域名注册商联系,更新您的IP地址。

  4.IP 封禁:IP封禁为:限制网络的出口IP地址,禁止该IP段的使用者进行内容访问,在这里特指封禁了BaiduspiderIP。当您的网站不希望 Baiduspider访问时,才需要该设置,如果您希望Baiduspider访问您的网站,请检查相关设置中是否误添加了 BaiduspiderIP。也有可能是您网站所在的空间服务商把百度IP进行了封禁,这时您需要联系服务商更改设置。

  5.UA 封禁:UA即为用户代理(User-Agent),服务器通过UA识别访问者的身份。当网站针对指定UA的访问,返回异常页面(如403,500)或跳转到其他页面的情况,即为UA封禁。当您的网站不希望Baiduspider访问时,才需要该设置,如果您希望Baiduspider访问您的网站,useragent相关的设置中是否有Baiduspider UA,并及时修改。

  6.死链:页面已经无效,无法对用户提供任何有价值信息的页面就是死链接,包括协议死链和内容死链两种形式:

  协议死链:页面的TCP协议状态/HTTP协议状态明确表示的死链,常见的如404、403、503状态等。

  内容死链:服务器返回状态是正常的,但内容已经变更为不存在、已删除或需要权限等与原内容无关的信息页面。

  对于死链,我们建议站点使用协议死链,并通过百度站长平台--死链工具向百度提交,以便百度更快地发现死链,减少死链对用户以及搜索引擎造成的负面影响。

  7.异常跳转:将网络请求重新指向其他位置即为跳转。异常跳转指的是以下几种情况:

  1)当前该页面为无效页面(内容已删除、死链等),直接跳转到前一目录或者首页,百度建议站长将该无效页面的入口超链接删除掉

  2)跳转到出错或者无效页面

  注意:对于长时间跳转到其他域名的情况,如网站更换域名,百度建议使用301跳转协议进行设置。

  8.其他异常:

  1)针对百度refer的异常:网页针对来自百度的refer返回不同于正常内容的行为。

  2)针对百度ua的异常:网页对百度UA返回不同于页面原内容的行为。

  3)JS跳转异常:网页加载了百度无法识别的JS跳转代码,使得用户通过搜索结果进入页面后发生了跳转的情况。

  4)压力过大引起的偶然封禁:百度会根据站点的规模、访问量等信息,自动设定一个合理的抓取压力。但是在异常情况下,如压力控制失常时,服务器会根据自身负荷进行保护性的偶然封禁。这种情况下,请在返回码中返回503(其含义是“Service Unavailable”),这样Baiduspider会过段时间再来尝试抓取这个链接,如果网站已空闲,则会被成功抓取。

转载请注明出处。

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 如何让关键词快速上百度首页

    如何让关键词快速上百度首页

    2015-10-06 11:54

  • 给seoer同仁的一些建议 不看后悔一辈子

    给seoer同仁的一些建议 不看后悔一辈子

    2015-10-06 11:54

网友点评