澳门新葡新京网址SEO推广必备:百度搜索引擎的工作原理(一)

解决因服务器而导致的蜘蛛抓取失败

• 作者 奕杉其 •
2012年01月29日10:34 •

服务器是网站生存的基础,不论是什么原因造成的服务器封禁,都直接影响搜索引擎的抓取,影响网站的用户体验,不利于seo工作的展开。重庆seo奕杉其将以自己的亲身经历,结合网络上一些朋友对这类问题的分析,总结出造成服务器封禁的三点主要原因:
一、服务器不稳定
现在的服务器多如牛毛,价格也各不相同,质量方面也是相差甚远,站长们往往在选择的时候都是“只认价不认质”,
有的空间商为了节省资源,故意屏蔽掉spider(蜘蛛)的IP,导致spider抓取失败,网站页面就无法被搜索引擎收录。
解决方法:选择有实力的正规空间商,尽可能保证您的网站稳定。服务器和空间的稳定性需要一定的技术实力来保障,一些没有实力的空间商,可能无力提供良好的服务,服务的稳定性无法保证。我们可以很形像的打个比喻:如果将“人”比喻为网站内容,那么服务器就是我们的“家”,它为我们挡风避雨,为我们的生存提供了一个优良的环境,而服务器的好坏将影响我们所能承受的风险。我想,谁都不愿意住在没有安全保障的屋子里,拿自己的生命开玩笑,同理,网站也是如此!如果您现在的服务器不理想,有必要另选时,请暂时让旧服务器能够使用一段时间,并且做301跳转,尽量减少更换服务器带来的一系列损失。
二、人为操作失误
对搜索引擎蜘蛛认识不够,对一些冒充搜索引擎spider的IP无法正确判断,继而误封搜索引擎IP。这样会导致搜索引擎不能成功抓取网站,无法成功抓取新网页,以及将之前已经成功抓取并收录的页面判定为无效链接,然后搜索引擎将会对这些死链接进行清除,继而网站页面收录减少,最终导致网站在搜索引擎的排名下降。
解决方法:正确认识各搜索引擎蜘蛛,而搜索引擎使用的 IP
地址会随时发生变化,为确保能够正确识别各搜索引擎IP,您可以使用DNS反查方式来确定抓取来源的IP是否属于正规搜索引擎,防止误封。
例如查Baiduspider:在linux平台下,您可以使用host
ip命令反解ip来判断是否来自Baiduspide的抓取。Baiduspider的hostname以
*.baidu.com 或 *.baidu.jp 的格式命名,非 *.baidu.com 或 *.baidu.jp
即为冒充。
$ host 123.125.66.120
120.66.125.123.in-addr.arpa domain name pointer
baiduspider-123-125-66-120.crawl.baidu.com.
host 119.63.195.254
254.195.63.119.in-addr.arpa domain name pointer
BaiduMobaider-119-63-195-254.crawl.baidu.jp.
三、保护性的偶然封禁。
1、如果网站的访问量过大,超过自身负荷,服务器会根据自身负荷进行保护性的偶然封禁。这种封禁是短暂性的,只要访问量下降到服务器的承受范围之内,那么服务器就会正常工作。
2、还有一种情况是spider造成的,搜索引擎为了达到对目标资源较好的检索效果,蜘蛛需要对您的网站保持一定量的抓取。搜索引擎会根据服务器承受能力,网站质量,网站更新等综合因素来进行调整,
建立一个合理的站点抓取压力。但是会有一些例外,在压力控制不好的情况下,服务器会根据自身负荷进行保护性的偶然封禁。
解决方法:1、如果是访问量造成的压力,那么恭喜你,说明你的网站已经拥有可观的访问人数,我们就应该升级服务器,来满足不段增长的访问量。2、如果是spider造成的,我们可以采用如下方式来减轻spider对服务器产生的压力:A、利用robots文件,屏蔽掉不想被spider抓取的页面。B、采用nofollow标签,屏蔽不想被spider爬行的链接。C、页面中较长的CSS、JS代码移到外部文件。D、删减多余代码。应当注意的是,以上两种情况在返回的代码中尽量不要使用404,建议返回503(其含义是“Service
Unavailable”)。这样spider会过段时间再来尝试抓取这个链接,如果那个时间站点空闲,那它就会被成功抓取了。
最后,希望站长尽量保持站点的稳定,对于暂时不想被搜索引擎抓取的页面,使用正确的返回码告知搜索引擎,如果确实不想被搜索引擎抓取或者索引,可以写robots信息告知。
作者:奕杉其
来源:澳门新葡新京网址 ,重庆seo
文章链接:本文来自

如何判断一个请求来自搜索引擎的爬虫

  • 正确清楚下每个请求都有 UserAgent ,但是UserAgent 是可以伪装
  • 判断请求 ip对应的host主机名是否是搜索引擎

Spider抓取系统的基本框架

通过UserAgent 判断

需要匹配的关键字是:
Baiduspider
Googlebot
360Spider
Sosospider
sogou spider

百度:http://www.baidu.com/search/spider.htm
google:https://support.google.com/webmasters/answer/1061943
360:http://www.so.com/help/help_3_2.html
soso:http://help.soso.com/webspider.htm
sogou:http://www.sogou.com/docs/help/webmasters.htm#07

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

通过 ip 解析的出来的主机名称

在linux平台下,您可以使用host
ip命令反解ip来判断是否来自Baiduspider的抓取。Baiduspider的hostname以
*.baidu.com 或 *.baidu.jp 的格式命名,非 *.baidu.com 或 *.baidu.jp
即为冒充。
$ host 123.125.66.120
120.66.125.123.in-addr.arpa domain name pointer
baiduspider-123-125-66-120.crawl.baidu.com.

在windows平台或者IBM OS/2平台下,您可以使用nslookup ip命令反解ip来
判断是否来自Baiduspider的抓取。打开命令处理器 输入nslookup
xxx.xxx.xxx.xxx(IP地 址)就能解析ip,
来判断是否来自Baiduspider的抓取,Baiduspider的hostname以 *.baidu.com 或
*.baidu.jp 的格式命名,非 *.baidu.com 或 *.baidu.jp 即为冒充。

在mac os平台下,您可以使用dig 命令反解ip来
判断是否来自Baiduspider的抓取。打开命令处理器 输入dig
xxx.xxx.xxx.xxx(IP地 址)就能解析ip,
来判断是否来自Baiduspider的抓取,Baiduspider的hostname以 *.baidu.com 或
*.baidu.jp 的格式命名,非 *.baidu.com 或 *.baidu.jp 即为冒充。

nodejs 代码实现

const dns = require('dns');
dns.lookupService('127.0.0.1', 22, (err, hostname, service) => {
  console.log(hostname, service);
  // Prints: localhost ssh
});

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

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

澳门新葡新京网址 1

Baiduspider 主要抓取策略类型

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

1、抓取友好性

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

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

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

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特征、分析页面大小及内容、分析站点规模对应抓取规模等等。

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

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

以下简单列举:

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

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

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

robots协议:robots.txt是搜索引擎访问一个网站时要访问的第一个文件,用以来确定哪些是被允许抓取的哪些是被禁止抓取的。
robots.txt必须放在网站根目录下,且文件名要小写。详细的robots.txt写法可参考

。百度严格按照robots协议执行,另外,同样支持网页内容中添加的名为robots的meta标
签,index、follow、nofollow等指令。

Baiduspider抓取频次原则及调整方法

Baiduspider根据上述网站设置的协议对站点页面进行抓取,但是不可能做到对所有站点一视同仁,会综合考虑站点实际情况确定一个抓取配额,每天定量抓取站点内容,即我们常说的抓取频次。那么百度搜索引擎是根据什么指标来确定对一个网站的抓取频次的呢,主要指标有四个:

1,网站更新频率:更新快多来,更新慢少来,直接影响Baiduspider的来访频率

2,网站更新质量:更新频率提高了,仅仅是吸引了Baiduspier的注意,Baiduspider对质量是有严格要求的,如果网站每天更新出的大量内容都被Baiduspider判定为低质页面,依然没有意义。

3,连通度:网站应该安全稳定、对Baiduspider保持畅通,经常给Baiduspider吃闭门羹可不是好事情

4,站点评价:百度搜索引擎对每个站点都会有一个评价,且这个评价会根据站点情况不断变化,是百度搜索引擎对站点的一个基础打分(绝非外界所说的百度权重),是百度内部一个非常机密的数据。站点评级从不独立使用,会配合其它因子和阈值一起共同影响对网站的抓取和排序。

抓取频次间接决定着网站有多少页面有可能被建库收录,如此重要的数值如果不符合站长预期该如何调整呢?百度站长平台提供了抓取频次工具(

造成Baiduspider抓取异常的原因

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

澳门新葡新京网址 2

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

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的访问,返回异常页面或跳转到其他页面的情况,即为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会过段时间再来尝试抓取这个链接,如果网站已空闲,则会被成功抓取。

澳门新葡新京网址 3

新链接重要程度判断

好啦,上面我们说了影响Baiduspider正常抓取的原因,下面就要说说Baiduspider的一些判断原则了。在建库环节前,Baiduspider会对页面进行初步内容分析和链接分析,通过内容分析决定该网页是否需要建索引库,通过链接分析发现更多网页,再对更多网页进行抓取——分析——是否建库&发现新链接的流程。理论上,Baiduspider会将新页面上所有能“看到”的链接都抓取回来,那么面对众多新链接,Baiduspider根据什么判断哪个更重要呢?两方面:

第一,对用户的价值:

1,内容独特,百度搜索引擎喜欢unique的内容

2,主体突出,切不要出现网页主体内容不突出而被搜索引擎误判为空短页面不抓取

3,内容丰富

4,广告适当

第二,链接重要程度:

1,目录层级——浅层优先

2,链接在站内的受欢迎程度

百度优先建重要库的原则

Baiduspider抓了多少页面并不是最重要的,重要的是有多少页面被建索引库,即我们常说的“建库”。众所周知,搜索引擎的索引库是分层级的,优质的网页会被分配到重要索引库,普通网页会待在普通库,再差一些的网页会被分配到低级库去当补充材料。目前60%的检索需求只调用重要索引库即可满足,这也就解释了为什么有些网站的收录量超高流量却一直不理想。

那么,哪些网页可以进入优质索引库呢。其实总的原则就是一个:对用户的价值。包括却不仅于:

1,有时效性且有价值的页面:在这里,时效性和价值是并列关系,缺一不可。有些站点为了产生时效性内容页面做了大量采集工作,产生了一堆无价值面页,也是百度不愿看到的.

2,内容优质的专题页面:专题页面的内容不一定完全是原创的,即可以很好地把各方内容整合在一起,或者增加一些新鲜的内容,比如观点和评论,给用户更丰富全面的内容。

3,高价值原创内容页面:百度把原创定义为花费一定成本、大量经验积累提取后形成的文章。千万不要再问我们伪原创是不是原创。

4,重要个人页面:这里仅举一个例子,科比在新浪微博开户了,即使他不经常更新,但对于百度来说,它仍然是一个极重要的页面。

哪些网页无法建入索引库

上述优质网页进了索引库,那其实互联网上大部分网站根本没有被百度收录。并非是百度没有发现他们,而是在建库前的筛选环节被过滤掉了。那怎样的网页在最初环节就被过滤掉了呢:

1, 重复内容的网页:互联网上已有的内容,百度必然没有必要再收录。

2, 主体内容空短的网页

1)有些内容使用了百度spider无法解析的技术,如JS、AJAX等,虽然用户访问能看到丰富的内容,依然会被搜索引擎抛弃

2)加载速度过慢的网页,也有可能被当作空短页面处理,注意广告加载时间算在网页整体加载时间内。

3)很多主体不突出的网页即使被抓取回来也会在这个环节被抛弃。

3, 部分作弊网页

网站地图xml地图