SEO教程提供SEO基础入门教程
微笑SEO优化教程网:关注本站让你的SEO不断进步!

搜索引擎spider爬虫(蜘蛛)原理

您现在的位置:SEO教程 > SEO优化教程 > 时间:2018-06-08 10:42:42 > 作者:smiseo
做SEO的人应该要对搜索引擎的基本原理有一些了解,从搜索引擎发现网址到该页面拥有排名,以及后续更新整个过程中,搜索引擎到底是怎么工作的?你都需要了解。

对于专业的算法不必进行深入的研究,但是对于搜索引擎工作中的生命力和算法原理要有个简单的认知,这样才能更有效地开展SEO工作,知其然也要知其所以然;

当然也有一些朋友不懂这些,照样做昨有声有色,但是有对搜索引擎工作原理,懂总比不懂好一点。

以往的SEO书藉中对这内容讲解都比较简单,希望在些能够尝试结合SEO实际工作和现象,更进一步剖析一下搜索引擎的工作原理,

其实当你了解了搜索引擎的工作流程、策略和基本算法后,就可以在一定程序上避免因为不当操作而带来的不必要处罚,

同也可以快速分析出很多搜索引擎搜索结果异常的原因。有搜索行为的地方就有搜索引擎,站内搜索、全网搜索、垂直搜索等都用到搜索引擎;

接下来,本文会根据从业认知,讨论一下全文搜索引擎的基本架构。

百度、谷歌等综合搜索巨头肯定有着更为复杂的架构和检索技术,但宏观上基本原理都差不多的。
搜索引擎spider爬虫(蜘蛛)原理

搜索引擎的大概架构如图2-1所示。可以分成虚线左右两个部分:一部分是主动抓取网页进行一系列处理后建立索引,等待用户搜索;

另一部分是分析用户搜索意图,展现用户所需要的搜索结果。

搜索引擎的大概架构

 搜索引擎主动抓取网页,并进行内容处理、索引部分的流程和机制一般如下:
1.派出spider按照一定策略把网页抓回到搜索引擎服务器;

2.对抓回的网页进行链接抽离、内容处理,削除噪声、提取该页主题文本内容等;

3.对网页的文本内容进行中文分词、去除停止词等;

4.对网页内容进行分词后判断该页面内容与已索引网页是否有重复,剔除重复页,对剩余网页进行倒排索引,然后等待用户的检索。

 当有用户进行查询后,搜索引擎工作的流程机制一般如下:
1.先对用户所查询的关键词进行分词处理,并根据用户的地理位置和历史检索特征进行用户需求分析,以便使用地域性搜索结果和个性化搜索结果展示用户最需要的内容;

2.查找缓存中是否有该关键词的查询结果,如果有,有为最快地呈现查询,搜索引擎会根据当下用户的各种信息判断其真正需求,对缓存中的结果进行微调或直接呈现给用户;

3.如果用户所查询的关键词在缓存中不存在,那么就在索引库中的网页进行调取排名呈现,并将该关键词和对应的搜索结果加入到缓存中;

4.网页排名是用户的搜索词和搜索需求,对索引库中网页进行相关性、重要性(链接权重分析)和用户体验的高低进行分析所得出的。用户在搜索结果中的点击和重复搜索行为,也可以告诉搜索引擎,用户对搜索结果页的使用体验。这块儿是近来作弊最多的部分,所以这部分会伴随着搜索引擎的反作弊算法干预,有时甚至还会进行人工干预。

搜索引擎原理之spider(蜘蛛如何抓取网页)
spider也就是大家常说的爬虫、蜘蛛或者机器人,是处于整个搜索引擎最上游的一模块,只有spider抓回的页面或URL才会被索引和有机会参考排名。需要注意的是:中要是spider抓到的URL都可能会参考排名,但参考网页并不一定就被spider抓取到了内容,比如有些网站屏弊搜索引擎spider后,虽然spider不能抓取网页内容,但是也会有一些域名级别的URL在搜索引擎中参考了排名(例如天猫上的很多独立域名的店铺);根据搜索引擎的类型不同,spider也会有不同的分类。大型搜索引擎的spider一般都会有以下所需要解决的问题,也是和SEO密切相关的问题。

首先spider想要抓取网页,要有发现网页抓取的入口,没有抓取入口也就没有办法继续工作,所以首先要给spider一些网页入口,然后spider顺着这些入口进行爬行抓取,这里就涉及抓取生命力的问题。抓取策略的选择会直接影响spider所需要的资源、spider所抓取网页占全网网页的比例,以及spider的工作效率。那么spider一般会采用什么的生命力抓取网页呢?

其次,网页内容也是有时效性的,所以spider对不同网页的抓取频率也要有一定的策略性,否则可能索引库中的内容都很陈旧,或者该更新的没更新,不该更新的却浪费资源更新,甚至还会出现网页已经被删除了,但是该页面还存在于结果中的情况。那么spider一般会使用什么样的再次抓取和更新策略呢?

再次互联网中的网页总有一部分是没有外部链接导入的,也就是常说的“暗网”,并且这上部分网页也是需要呈现给广大网民浏览的,此时spider就要想办法针对处于暗网中的网页进行抓取,当下百度是如何来解决这个暗网问题的?

最后大型搜索引擎的spider不可能只有一个,为了节省资源,要多个spider同时作业且抓取页面不重利又由于各地区数据中心分配问题,搜索引擎一般不会把spider服务器放置在一个地区,会多个地区同时作业,这两方面就涉及分布式抓取的策略问题。那么一般搜索引擎的spider会采用什么样的分布抓取策略呢?

接下来逐一介绍一般的搜索引擎spider在面临以上问题时采用的是什么策略,并详细地了解一下整个搜索引擎最上游的spider到底是如何工作的,以及一个优秀的spider程序应该有哪些特点。

spider有哪些分类:
按照现在网络上所有spider的作用及表现出来的特征,可以将其分为三类:指型spider、增量型spider、垂直型spider。

1.批量型spider:一般具有明显的抓取范围和目标,设置抓取时间的限制、抓取数据量的限制,或抓取固定范围内页面的等;当spider的作业达到预先的目标就会停止。普通站长和SEO人员使用采集工具或程序,所派出的spider大都属于批量型spider,一般只抓取固定网站的固定内容,或者设置对某一资源的固定目标数据量,当抓取的数据或者时间达到设置限制后就会自动停止,这种spider就是伊丽莎白 批量型spider。

2.增量型spider:增量型spider也可以称之为通用爬虫,一般可以称为搜索引擎的网站或程序,使用的都是增量型spider,但是站内搜索引擎除外,看碟有站内搜索引擎一般不需要spider的,增量型spider和批量型spider不同,没有固定目标、范围和时间限制,一般会无休止地抓取下去,直到把全网的数据抓完为止。增量型spider不仅仅抓取尽可能全的页面,还要对已经抓取到的网页进行相应的再次抓取和更新。因为整个互联网是在不断变化的,单个网页上的内容可能会随着时间的变化不断更新,甚至在一定时间之后该页面会被删除,优秀的增量型spider需要及发现这种变化,并反映给搜索引擎后续的处理系统,对该网页进行重新处理,当下百度,谷歌网页搜索等全文搜索引擎的spider一般都是增量型spider。

3.垂直型spider:垂直型spider也可以称之为聚焦爬虫,只对特定主题、特定内容或特定行业的网页进行抓取,一般都会聚焦在某一个范围内进行增量型的抓取。此类型的spider不像增量型spider一样追求大而广的覆盖面,而是在增量型spider上增加一个抓取网页的限制,根据需求抓取含有目标内容的网页,不符合要求的网页会直接被放弃抓取。对于网页级别纯文本内容方面的识别,现在的搜索引擎spider还不能百分之百地进行准确分类,并且垂直型spider也不能像增量型spider那样进行全互联网爬取,因为那样太浪费资源。所以现在的垂直搜索引擎如果有附性的增量型spider,那么就会利用增量型spider以站点为单位进行内容分类,然后再派出垂直型spider抓取符合自己内容要求的站点;没有增量型spider作为基础的垂直搜索引擎,一般会采用人工添加抓取站点的方式来引导垂直型spider作业。当然在同一个站点内也会存在不同的内容,此时垂直型spider也需要进行内容判断,但是工作量相对来说已经缩减优化了很多,现在一淘网,优酷下的搜库、百度和谷歌等大型搜索引擎下的垂直接索使用的都垂直型spider。虽然现在使用比较广泛的垂直型spider对网页的识别度已经很高,但是总会有些不足,这也使得垂直类搜索引擎上的SEO有了很大空间。

本站主要讨论网页搜索的SEO,所以讨论的内容以增量型spider为主,也会简单涉及垂直型spider方面的内容,其实垂直型spider完全可以看作是做了抓取限制的增量型spider。

spider的抓取策略

在大型搜索引擎spider的抓取过程中会有很多策略,有时也可能是多种策略综合使用,这里简单介绍一下比较简单的spider抓取策略,以辅助大家对spider工作流程的理解,spider抓取网页,在争取抓取尽可能多网页的前提下,首先要注意的就是避免重复抓取,为此spider程序一般建立已抓取URL列表和持抓取URL列表(实际中是由哈希表来记录URL的两个状态);在抓取到一个新页面时,提取该页面上的链接,并把提取到的链接和已经抓取URL列表中的链接进行逐一对比,如果发现该链接已经抓取过,就会直接丢弃,如果发现该链接还未抓取,就会把该链接放到待抓取URL队列的末尾等待抓取。

spider眼中的互联网网页可以分为以下四类,如图2-2所示:

spider眼中的互联网网页可以分为以下四类

1.已经抓取过的页面,即spider已经抓取过的页面;
2.待抓取页面,也就是这些页面的URL已经被spider加入到了待抓取URL队列中,只是还没有进行抓取。
3.可抓取页面,spider根据互联网上的链接关系最终是可以找到这些页面的,也就是说当下可能还不知道这些页面的存在,但是随着spider增量型的抓取,最终会发现这些页面的存在;
4.暗网中的页面,这些网页和表层网络上的网页是脱钩的,可能这些页面中有链接指向以上三类网页,但是通过以上三类网页并不能找到这些页面,比如,网站内需要手动提交查询才能获得的网页,就属于暗网中的网页,据估计暗网要比非暗网大几个数量级。

全文搜索引擎的spider一直致力于抓取全网的数据,现在spider对于非暗网网页已经具备大量高效的抓取策略。对于暗网的抓取,各个搜索引擎都在努力研究自己不同的暗网spider抓取策略,百度对比推了“阿拉丁”计划,鼓励有优质资源的网站把站内资源直接以XML文件的形式提交给百度,百度会直接进行抓取和优先排名显示。这里主要讨论spider针对非暗网中网页的抓取策略。

当spider从一个入口网页开始抓取时,会获得这个页面上所有的导出链接,当spider随机抓取其中的一个链接时,同样又会收集到很多新的链接。此时spider面临一个抓取方式的选择:

1.先沿着一条链接一层一层地抓取下去,直到这个链接抓到尽,再返回来按照同样的规则抓取其他链接,也就是深度优化抓取策略。

2.还是先把入口页面中的链接抓取一遍,把新发现的URL依次进行入库排列,依次抓取下去,也就是广度优化先抓取策略。

一.深度优化策略:深度优先策略即一条道走到黑,当沿着一个路径走到无路可走时,再返回来走另一条路。

如图2-3所示为深度优先抓取策略的示意图,所设A页面为spider的入口,spider在A页面上发现了1、7、11三个页面的链接,然后spider会按照图中数字所标示的顺序依次进行抓取。当第一条路径抓到3页面时到头了,就会返回2页面抓取第二条路径中的4页面,在4页面也抓到头了,就会返回1页面抓取第三条路径中的5页面,并顺着一路抓下去,抓到头后会按照之前的规则沿一条一条路径抓下去。

 

深度优先抓取策略

 二.广度优先:广度优先策略即spider在一个页面上发现多个链接时,并不是一条道路走到黑的,顺着一个链接继续抓下去,而是先把这些页面抓一遍,然后再抓从这些页面中提取下来的链接,如图2-4所示广度优先抓取策略的示意图,假设A页面为spider的入口,spider在A页面上发现了1、2、3三个页面。当抓完1网页时,只是把1网页中4和5网页的链接放入待抓取URL列表,并不继续抓1页面中的其他链接,而是抓2页面。当B级页面抓取完成时,才会抓取从B级页面中提取到C级页面中的4、5、6、7、8、9六个页面,等C级页面抓取完成后,再抓取从C级页面中提取到D级新页面,依次持续抓取下去。
 广度优先抓取策略
 理论上spider不论采用深度优先策略还是广度优先策略,只是时间足够,都可以把整个互联网上的网页抓取一遍。但是搜索引擎本身的资源有是有限的,快带抓取全互网有价值的页面只是一种奢望罢了,所以搜索引擎的spider不是只使用一种策略无限地抓取新页面,而是采用两种策略相结合的方式来进行抓取。一般spider可以在域名级别的页面使用方式优先抓取策略,尽可能地收集更多的网站。在网站内页级别一般会根据网站的权重综合使用广度和深底优先抓取策略,也就是说网站的权重越高,抓取量也会越大,刚上线的网站可能只会被抓一个首页,这也是很多新网站在一定时间内,在搜索引擎中只被索引首页的原因之一。
 
上面讨论的两个策略是站在spider只是单纯想抓取全互联网数据的基础上,所需要选择的策略。实际在搜索引擎中,虽然spider在尽力保证抓取页面的全面性,但是由于自身资源有限,所以在尽力抓取全网的同时,还要考虑对重要页面的优先抓取。这个“重要页面”的定义应该是指在互联网中比较的页面,该页面内容应该具有影响力比较大、需要了解该内容的网民比较多或时效传播性比较强的特点。体现到抓取策略上,就是这个页面的导入链接很多,或者是权重高的大站中的网页。总结来说,就是两个策略:重要网页优先抓取策略和大站链接优先抓取策略。
1.重要页面优先抓取策略:一般认为页面的重要性,除了受寄主站本身的质量和权重影响以外,就看导入链接的多少和导入链接的质量了。spider抓取层面上的“重要页面”一般由导入的链接来决定。在前面所讨论的抓取策略中,spider一般都会把新发现的未抓取过的URL依次放到待抓取URL队列的尾端,等待spider按顺序抓取。在重要页面优先抓取的策略中就不是这样的了,这个待抓取URL队列的顺序是在不断变化的。排序的依据一般是:页面获得的已抓取页面链接是多少的链接权重的高低。

2.大站优先策略:大站优先策略这人思路很笑意。被搜索引擎认定为“大站”的网站,一定有着稳定的服务器、良好的网站结构、优秀的用户体验、及时的资讯内容、权威的相关资料、丰富的内容类型和庞大的网页数量等先生 ,当然也会相应地拥有大量的高质量外链。也就是在这一定程序上可以认定这些网站的内容就可以满足相当比例网民的搜索需求,搜索引擎为了在有限的资源内尽最大的努力满足大部分普通用户的搜索需求,一般就会对大站进行“特殊照顾”。因此大家可以看到新浪、网易这些网站上自主发布内容几乎都会百度秒收,因为百度搜索的spider在这些网站上是7*24小时不间断抓取的。如果有新站的链接出现在这些网站的重要页面上,也会相应地被快速抓取和收录。曾经有朋友试验新站秒收的策略:把新站的链接推到一些大站的首页,或挂到大站首页所推荐的页面中,效果还是很不错的。

这两个策略与前面所讨论的广度优先策略和深度优先策略相结合的抓取方式是有共通点的。比如,从另一个角度来看,如果spider按照前两策略抓取,一个页面获得的导入链接越多,被提交抓到的几率就越大,也就是和重要页面优先抓取是趋同的;在spider资源有限的情况下广度优先策略和深度优先策略的结合分配本身就会以站点的大小进行区别对待,大网站的页面有着先天的高重要程序,往往也就容易获得更的链接支持。所以宏观来看,这几个策略在抓取表现上有相近之处,在实际的抓取过程中相辅相成。

相对于整个互联网的网页来说,spider的资源再充足也是有限的,所以优秀的spider程序应该首先保证对重要网页的抓取,然后才是尽力抓取尽可能全的互联网网页信息民。由此也可以看出依靠外部链接来引导spider和提升网站权重,以及依靠内容长期运营网站权重的重要性。

spider并不会爬:spider抓取一个网页后会优先把网页中的URL提取出来,同时记录和计算URL的形式、位置、锚文本、当前页所赋予的权值等信息,然后把这些URL合并到抓取队列中,并根据每个URL所附有的总权值等信息进行抓取队列内排序。spider就是根据这个不断变化顺序的URL队列来抓取网页内容的,并不是从一个页面沿一着链接爬到另一个页面的抓取过程。因此严格来说spider是不会“爬”的,站长在网站日志中也可以看到spider对网站的访问并没有REFER,都是直接访问。
 
以往一般会把spider抓取网页的过程形象地描述为搜索引擎放出的spider,然后这个spider就沿产丰链接不断地抓取网页,这只是一种形象的比喻而已。比如以前描述类似万年历的“蜘蛛陷阱”时,会有这样的描述“蜘蛛进入到蜘蛛陷阱后会一层一层地无限抓取下去、蜘蛛进去就出不来了、把蜘蛛永远留在站内了”,这类描述给大家传达的意思都是spider沿着链接从一个网页到另一个网页的爬行过程。其实按照实际的spider设计,“蜘蛛陷阱”并不是把spider留在了站内“出不去了”,而是如果不加控制的话,spider会在“蜘蛛陷阱”的网页集合中收集到无数无意义的URL并放放抓取队列中,这些URL对应的网页并没有实际有意义的内容,从而会造成spider抓取资源的浪费。所谓的“把蜘蛛强制留在站内”对应实际的spider抓取机制,应该是如果spider不加限制地收集URL,就需要无限制地抓取“蜘蛛陷阱”内的URL,然而“蜘蛛陷阱”内的URL可能是无限的,并不是“一个蜘蛛掉陷阱里出不来了”。
也就是说,spider对网页的抓取是单次访问抓取,每访问一个页面都会把页面上的信息抓取回来,而不是把一个“小蜘蛛”派到网站上,然后沿着网站链接爬行抓取大量的页面之后再返回给服务器。

spider再次抓取更新策略

Spider把网页抓取到本地,该网页被分析索引并参与了排名,并不意味着Spider针对该网

页的工作已经结束了。现在互联网网页内容多是动态变化的,甚至有时网页会被管理者删除。

搜索引擎所抓取到的本地页面,可以看做是对已经抓取并索引过的网页做了一个镜像,也就是说理论上搜索引擎应该保证,本地“镜像”页面和对应互联网上的网页内容实时一致。但是由于搜索引擎的Spider资源有限,现阶段做不到也没有必要做到实时监测全部已索引网页的所有变化。搜索引擎只需要为Spider设置一个再次抓取和更新页面的策略,以保证当部分页面呈现到用户面前时,搜索引擎的本地索引和该网页当时的内容并没有太大的差异就可以了,这部分页面应该包含大部分网民所需要检索的内容,并且也可以满足绝大多数搜索用户的搜索请求。

如上所述,在有限资源的情况下,搜索引擎首先要保证部分网页索引的更新,这部分网页拥有大部分用户所需要的内容;也要保证所有索引页面都有一个更新机制,在该网页需要相应的新的内容索引时,Spider要进行再次抓取并更新该网页索引。站在Spider的角度,一般会根据以下四个方面来确定对已索引网页的再次抓取频率:用户体验、历史更新频率、网页类型和网页权重。

1.用户体验

整个互联网的网页数量是巨大的,已被百度抓取并索引的中文网页应该也是千亿级别的了,但是用户所需要的信息只有一小部分。当用户在搜索引擎提交查询后,不论返回结果有多少,大部分用户都会在前三页找到自己所需要的信息,很少有用户会浏览第四页或者更靠后的搜索结果。本着优先更新大部分用户所需要内容的原则,所有用户提交查询结果的前几页,都是值得保证索引及时更新的。所以一般搜索引擎会搜集所有用户的搜索请求,然后统计所有搜索结果中用户可能看到的网页,继而进行优先再次抓取和更新。理论上,这些网页被搜索到的次数越多,再次被抓取的频率就会越高。

2.历史更新频率

搜索引擎会尝试发现某一个网页中内容的更新频率,因为Spider的再次抓取就是为了发现己经被索引网页是否有变化,如果某个网页持续没有变化,可能搜索引擎就会降低对其抓取的频率,甚至不再对其进行再次抓取。这个策略的实施是建立在搜索引擎已经发现网页的更新频率的基础上的,所以理论上当Spider发现一个新URL抓取并索引后,会很快进行二次抓取。如果没有发现内容变动,就会降低抓取频率,这样慢慢地发现网页的更新频率,以调整到最佳的抓取频率。同时Spider注重的变化应该是网页的主体内容部分,一般会忽略主体内容周围的广告模块、导航模块及推荐链接模块的更新变动。

3.网页类型

不同的网页类型有不同的更新频率。在同一个站点内网站首页、目录页、专题页和文章页的更新频率肯定是不同的。所以对于同一站点内的网页,Spider对不同类型的网页抓取频率是不同的。首页和目录页是Spider经常光顾的页面;根据专题页面的时效性或者其他特征,Spider可能会在某一时间段内进行频繁抓取,时效性过期后就会降低对其的抓取频率;对于文章页,Spider很有可能第一次来过之后就不再来了。虽然整个互联网中网页很多,但是网页类型并不多,每个类型的网页都会有自己的布局和更新规律,搜索引擎有足够的能力发现网页的类型并设置合理的再次抓取频率。网页类型归类和网页历史更新频率是被综合使用最多的,一般在同一站点内同类网页会有相同的更新频率,这也会方便Spider对网页更新频率的判断。

4.网页权重

除了以上再次抓取策略外,网页权重也是决定抓取频率的重要因素。用户体验策略在一定程度上也反映了网页权重的影响。在网页类型相同、历史更新频率也差不多的情况下,肯定是权重越高的页面被抓取的频率越高。比如百度首页、好123首页、chinaz站长工具首页和普通企业站首页都可以简单归为网站首页,并且前三个“首页”长期都不会有什么更新,普通企业站首页可能偶尔还会有更新,但是前三个“首页”的百度快照一般都是最新的,而普通企业站的首页快照可能是一周前甚至一个月前的。这就反映出了网页权重在抓取频率中的作用。

在搜索引擎Spider的实际作业中,不会单独使用某一种再次抓取策略,而是会综合参考网页的用户体验、更新频率、网页类型和网页权重。并且对于不同类型的页面,着重参考的更新内容主体也是不同的。比如,列表页只有一篇新的文章进入可能就算更新了;文章页主体内容没有变,主体内容周围的所有推荐链接、广告、内容都变了,可能也不会算是有更新。

在SEO工作中为了提高某一网站的抓取频率,一般会重点为该页面的导入链接提高权重,努力加大该页面的更新频率。其实在用户体验和网页类型方面也是有工作可做的,用标题和描述吸引点击不仅可以提升排名,也能够间接增加页面被Spider抓取的频率;同时对于不同定位的关键词可以使用不同的网页类型(列表页、专题页、内容页等),这在设计页面内容和网站架构时就应该仔细地考虑,并且网页类型这部分有很多工作值得做。比如,有不少网站把整站都做成了列表页,全站没有普通意义上的内容页,内容页主体内容下方或周围也有大量和主题相关的文本内容,一般是类列表形式。不过这种手法有效时间不长,或者损害用户体验后会降低被抓取的频率。不论怎样,优秀的网站架构设计应该合理地利用Spider抓取策略的各种特性。

以上讨论的是Spider正常的抓取策略。有抓取并不代表一定有更新,当页面内容的变化值得搜索引擎更新索引时才会更新,比如,上面提到的文章页主体内容不变但是推荐链接全变了,一般搜索引擎也不会浪费资源做无意义的更新。当Spider发现己经索引的页面突然被删除,也就是服务器突然返回404状态码时,也会在短时间内增加对该页面的抓取频率。有的SEO人员就利用这一点增加Spider对自己网站的抓取,并做一些其他的“手脚”,不过这是一个走钢丝的小聪明行为,不见得长期有效,不值得冒险使用。

另外,有不少门户网站习惯对即时新闻先发布一个标题,然后再让编辑补充内容,甚至还会修改标题。但是这种网页一般都是文章页,不论从用户体验、更新频率、网页类型和网站权重哪方面来看都不会得到比较高的抓取频率,也就造成这些网站不断在报怨百度不更新如此操作的新闻网页。百度搜索官方已经表示希望以后通过百度站长平台来解决一下这个问题,但是作为SEO人员不能只是指望搜索引擎官方做出什么样的动作。仔细研究Spider的抓取和更新策略,虽然或许不能将问题解决得那么完美,但是一般都会找到比较适合自己的方法。当然最终还是期望百度官方尽快推出相应的机制或工具来解决这个问题。

百度“阿拉丁”解决暗网抓取

前面已经介绍过暗网,这些网页和“非暗网”网页是脱钩的,也就是说Spider通过普通的抓取机制永远都不可能抓取到这些页面。用户浏览这些暗网页面一般都是通过提交条件查询或者文本框主动搜索,当然还有很多其他情况产生的暗网网页,但是普通搜索引擎的Spider考虑到很多因素是不会直接这样来操作的。由于暗网页面的数量巨大,价值也远高于非暗网页面,所以大型搜索引擎都把对暗网的抓取当成了重要研究课题,各自也有着各自的抓取策略。这里来介绍一下百度的“阿拉丁计划”。

百度的“阿拉丁计划”诞生的初衷就是挖掘出更多存在于暗网之中有价值的信息,让更多人从中受益。通过加入阿拉丁平台,可以指定关键词,把自己网站的内容更精准地呈献给目标用户;可以指定展现样式,使用更丰富、更适合资源本身的样式,而不再局限于文字;指定更新频率,也就是直接告诉百度自己资源的更新频率,以保证百度搜索结果数据和实际数据的实时同步。

由于是站长自己提交资源,所以百度可以很容易地解决一部分暗网抓取问题。这个平台对于有着独特资源的网站来说绝对是个福利,不仅使得更多使用百度搜索的网民受益,自己的网站也获得了更多的流量,重要的是非商业内容网站加入阿拉丁平台完全是免费的。不过对于大部分无独特资源的中小站长来说,这个平台会减少自己网站的展示机会。在一定角度上来说也是在鼓励站长发掘自己独有的内容和资源。当然如果网站资源比较不错,也可以通过付费的方式加入到百度阿拉丁平台,不过付费阿拉丁对资源应该有特别的要求。现在阿拉丁中的商业内容基本上都是付费的,比如房产、汽车等。

即使不能进入阿拉丁,站长自己也可以辅助百度抓取自己站内处于“暗网”中的页面。比如商城和房产类网站,把希望百度收录的交叉查询的链接全部呈现出来(如图2-5所示),或者把自己希望百度收录的页面制作成HTML和XML地图以供百度Spider抓取和收录,并且百度站长平台开通了sitemap提交功能,有比较优质资源的站长可以通过此工具提交自己网站“暗网”中的页面。百度在对暗网抓取方面比较依靠站长自己的主动配合,而没有暴力查询网站的数据库。

安居客房源交叉查询模块

分布式Spider和“降权蜘蛛”

由于Spider所要抓取的网页太多,如果只有单一的一个Spider进行抓取作业,那么将需要非常巨大的计算能力,同时也会消耗更多的抓取时间。这里就引入了分布式计算的概念,把庞大的抓取作业任务分割成很多较小的部分,使用大量合理计算能力的服务器来承载这个任务,以完成对全互联网网页的快速抓取。现在大型搜索引擎都会使用分布式计算,同样Spider也会使用分布式计算,可以称这种Spider为分布式Spider,它遵循了分布式计算的主要规则,根据这些规则也可以解释现在站长和SEO人员关心的“降权蜘蛛”问题。

分布式计算有很多种计算方式,这里简单介绍Spider应有的分布式抓取策略。涉及分布式计算,也就涉及任务分发机制。整个分布式Spider系统需要保证所有Spider之间不会有重复抓取的情况发生,也就是要为各个Spider分配好抓取范围。当一个Spider发现一个新的URL时,会判断该URL是否在自己的抓取范围之内,如果在自己的抓取范围之内,就会把该URL放到自己待抓取URL队列中;如果不在自己的抓取范围之内,就会把该URL提交给上级服务器,由上级服务器分发给相应的Spider,并加入到该Spider的待抓取URL列表中。

要确保所有Spider的作业不重复,就要求每个Spider都有自己的抓取范围,也就是说每个Spider都会只抓取指定类型的网页。这里就要看搜索引擎是如何对网页进行分类的了,常规网页的分类方法有三种,第一种是按照优秀站点、普通站点、垃圾站点、降权站点和屏蔽(被K)站点等站点质量等级分类;第二种是按照网站首页、网站目录页、网站内容页、网站专题页、视频、图片、新闻、行业资料、其他类型的网络文件(PDF, Word, Excel等)等网页类型分类;第三种是按照站点或网页内容所在行业分类。在真正的Spider系统设计中,为了减少搜索引擎和被抓取站点服务器之间的握手次数(影响抓取效率的重要因素),站点级别相关的分类应该是被优先使用的。

Spider会严格按照自己的作业任务进行作业,由以上分类可以看出,对于大部分中小网站一般都会有一个固定的Spider进行抓取,所以很多站长和SEO人员在分析网站日志时所发现的百度Spider经常都是同一IP段的,但是不同网站之间发现的Spider的IP段并不同。理论上,如果参与研究的站点比较多,类型比较丰富,就可以比较容易地分辨出百度Spider的任务分发模式,这样通过分析日志中百度来访Spider的IP就可以判断出自己的站点在百度搜索眼中是什么样的。

针对第一种分类方式,就可能出现某一IP段的Spider只抓取权重高的网站,某一IP段的Spider只抓取已被搜索引擎降权或者屏蔽的网站。如果真的是采用这种任务分发方式,那么网络上所传的“降权蜘蛛”就可能存在。不过并不是因为这个Spider的到来使得网站降权或者屏蔽,而是因为该网站己经被百度降权或者屏蔽,百度服务器才会把对该站点的抓取任务分发给这个Spider。如果百度使用这种分布式的Spider,那么网络上对百度Spider各IP段特性的总结也是比较有意义的,不过不可全信,因为百度不可能只使用一种任务分发模式。这也可以成为站长和SEO人员的研究方向,即使可能最终一无所获。因为搜索引擎对网站和网页的分类有太多纬度了,新抓取和再次抓取所使用的纬度就可能不同,很可能各个纬度都是综合使用的。

如图2-6所示为某网友对百度Spider所使用的IP的分析,有兴趣的朋友可以百度搜索一下“百度蜘蛛IP段详解”,有不少类似的总结,看看就好,不可以绝对当真。

网络对百度spider的分析

Spider和普通用户的区别

所有的全文搜索引擎都表示自己的Spider对网站的抓取行为和普通用户的访问行为没有太大区别。站在普通用户的角度这句话的确没有问题,但是站在站长和SEO的角度这句话就不太对了。网页上有很多东西普通用户看不到也分辨不清,但是Spider可以;网页上也有很多东西普通用户可以看到并分辨清楚,但是Spider不可以。可以说Spider是一个既聪明又弱智的普通用户,Spider有着普通用户访问行为的大部分特性,但是也有不少差异。

Spider可以分辨出网页中是否有隐藏内容,是否被挂了黑链等,但是不能完全了解网页中图片的内容,更不能读取JavaScript, Iframe,勾ax和Flash中的内容,普通用户却是恰恰相反;

Spider没有Referer,对网站的抓取全部都是直接访问,而普通用户中除了直接访问的用户外一般都是有Referer的;Spider对网站的访问没有Cookie,但是普通用户是有的;

Spider不会主动注册登入网站,但是普通用户是可以的;原则上Spider不会抓取和分析网站robots中已经屏蔽的内容,但是普通用户是可以正常访问的;

Spider对于有多个动态参数网站的抓取,可能会陷入死循环,但是普通用户是不会的;

Spider对于列表中前几页的新内容抓取可能不好,但是感兴趣的普通用户会依次浏览;

Spider暂时还不能真正判断文章是不是原创,但是普通用户可以通过多种方式来确定文章是原创还是采集转载等。

Spider毕竟是人为技术驱动的程序,与普通用户还是有着非常大的区别的,因此给了站长和SEO人员很大的操作空间。站长和SEO人员在充分了解到 Spider和普通用户的区别后,可以更方便地优化网站,使得网站内容被充分抓取,网站整体在搜索引擎中有个良好的表现;同时也可以利用两者的区别,使得在不影响搜索引擎抓取和排名的情况下,给普通用户更友好的用户体验,比如,判断用户Referer给用户推荐内容等;当然,不排除有些站长和SEO人员会利用这些区别,采用很多极端的技术作弊手法,在普通用户感觉不到的地方,误导Spider对网站内容的判断,而恶意抢夺很多本不应该得到的搜索流量,这是不可取的。无论如何,都有必要深入了解两者的差异。

 

本文出自微笑SEO优化教程网,未经允许不得转载:搜索引擎spider爬虫(蜘蛛)原理 http://jc.smiseo.com/seoyhjc/233.html