网站运营直通车:7天精通SEO(白金版)
上QQ阅读APP看书,第一时间看更新

1.5.1 爬行抓取

爬行抓取是搜索引擎工作最重要的一步,它把所有需要抓取的网页抓取回来进行处理分析。因此如果在抓取这步出了错,后面的工作就完全瘫痪了。

每当我们用搜索引擎进行搜索时,会立刻出现数以万计的网页信息,这个过程是以秒来计时的。这时我们可以想一想,搜索引擎是在1秒钟之内把所查询的关键词从广大的互联网中逐一抓取一遍,还是事先已经处理好了这部分数据来显示呢?

平时我们上网随便打开一个网页的时间也要1秒,而这仅仅是打开一个网页的时间,由此可知搜索引擎在以秒计时的时间内是不可能把互联网上的信息都查询一遍的,这不仅耗时也耗钱。因此搜索引擎都是事先处理好了所抓取的网页。其搜集信息工作是按照一定的方式来进行的,基本上有如下两种。

■ 批量收集:对互联网上只要存在链接的网页都收集一遍,耗时约几周。其缺点在于增加了额外的带宽消耗,时效性也不高。

■ 增量收集:是批量收集的一个技术升级,完美弥补了批量收集的缺点。它是在原有的基础上搜集新增加的网页,变更上次收集之后有改变的页面,并删除重复收集和不存在的网页。

还有一种比较简单的方法,即站长主动向搜索引擎提交网站,等到一定时间由搜索引擎来爬取。不过现在采用这种方式获取信息的速度越来越慢了,因此最理想的办法还是顺着自然链接来收集比较好。这就需要站长在前期做好搜索引擎蜘蛛爬行的入口,一定要找一个和网站自身相关的入口。下面将详细介绍搜索引擎蜘蛛的情况。

1.搜索引擎蜘蛛

搜索引擎蜘蛛是搜索引擎的一个自动程序。它的作用是访问互联网上的网页、图片、视频等内容,建立索引数据库,使用户能在搜索引擎中搜索到网站的网页、图片、视频等内容。其一般用法为spider+URL,其中URL(网址)是搜索引擎的痕迹。如果要查看某搜索引擎是否爬取过您的网站,可查看服务器的日志里是否有该URL,同时还能查看来的时间、频率等。

(1)百度蜘蛛。百度蜘蛛可以根据服务器的负载能力调节访问密度,大大降低服务器的服务压力。根据以往的经验百度蜘蛛通常会过度重复地抓取同样的页面,导致其他页面无法被抓取到而不能被收录。这种情况可以采取robots协议的方法来调节。百度蜘蛛的用法如下:

Mozilla/5.0(compatible/2.0;Baiduspider+(+http://www.baidu.com/search/spider.htm

(2)谷歌蜘蛛。谷歌蜘蛛属于比较活跃的网站扫描工具,间隔28天左右就派出蜘蛛检索有更新或者有修改的网页。与百度蜘蛛最大的不同点是谷歌蜘蛛的爬取深度要比百度蜘蛛多一些。其用法如下:

Mozilla/5.0(compatible;Googlebot/2.1;+http://www.google.com/bot.html

(3)雅虎中国蜘蛛。如果某个网站在谷歌网站下没有被很好地收录,在雅虎下也不会被很好地收录和爬行。雅虎蜘蛛的数量庞大,但平均效率不是很高,相应的搜索结果质量也不高,其用法如下:

Mozilla/5.0 (compatible; Yahoo! SLurp China; http://misc.yahoo.com.cn/help.html)

(4)雅虎英文蜘蛛。雅虎英文蜘蛛的用法与中文蜘蛛不同,其用法如下:

Mozilla/5.0 (compatible;Yahoo! SLurp/3.0;http://help.yahoo.com/help/us/ysearch/slurp)

(5)微软必应蜘蛛。必应与雅虎有着深度的合作关系,所以基本运行模式和雅虎蜘蛛差不多,其用法如下:

msnbot/1.1(+http://search.msn.com/msnbot.htm

(6)搜狗蜘蛛。搜狗蜘蛛的爬取速度比较快,抓取的数量相对于速度来说稍微少点,其用法如下:

Sogou+web+robot+(+http://www.sogou.com/docs/help/webmasters.htm#07)

2.链接布局

搜索蜘蛛(以下简称蜘蛛)主要通过爬取页面上的链接来发现新的页面,以此类推不停地十字交叉爬行下去便形成一张蜘蛛网。

爬行主要按两种策略来执行:一是深度优先,二是广度优先。

■ 深度优先:如图1-7所示,蜘蛛从A网页顺序到A1、A2、A3、A4,爬行到A4页面之后发现没有页面了,于是又重新返回到了A页面,以此类推爬行到B1、B2、B3、B4页面。深度爬行的主要特点是蜘蛛会一直沿着一条线抓取下去,直到最后,然后再返回到另一条线。

图1-7 深度优先爬行示意图

■ 广度优先:指蜘蛛在一个页面上发现多个连接的情况下,首先把所有第一层的链接抓取一遍,然后再沿着第二层的链接向第三层链接爬行,如图1-8所示。

图1-8 广度优先爬行示意图

归根到底,只要给蜘蛛足够的时间,无论是广度爬行还是深度爬行都能爬完整个网站。我们做SEO就要给蜘蛛节省宽带和资源,毕竟蜘蛛的资源不是无限的,也有满负载时。我们所要做的工作就是为蜘蛛指明一条正确的道路,尽量减少蜘蛛的工作。

3.避免网页重复收集

重复收集,从字面意思可以理解为第一次收集过之后,又进行了第二次收集,不但没有提高效率,反而增加了服务器带宽的额外开销。对于搜索引擎而言,重复做事情相当消耗资源,也就做不到时效性地更新,而且有可能降低秒级的输出服务。

造成重复收集的原因在于蜘蛛没有记录访问过的页面的URL,也有可能是有多个域名指向一个页面。

因此搜索引擎在这方面采用了一项技术,分别定义两个不同类型的表,即“已访问表”和“未访问表”。依靠这项技术很简单地就解决了重复收集的难题。

蜘蛛抓取到一个链接之后,从这两个表中判断该链接是否已经被访问过,如果没有访问过,抓取回来添加到未访问表中去。

如图1-9所示,蜘蛛从开始依次爬行到网页D、网页A、网页C或者从网页F顺着链接爬行到网页G、网页D、网页A,会调用两边中的数据,以此来判断爬取网页的重复度。

图1-9 蜘蛛解决重复抓取的过程

4.收集重要的网页

由于互联网中的信息实在太多太杂,随着时间的推移不可能将其中所有的信息都收集起来,所以要尽可能地收集重要的网页,而网页信息的重要性是根据信息本身来决定的,因此收集的方式也采用了不同的策略。

整个网站页面的质量权重度,并非是网站首页权重越高越好,往往需结合全局来分配。

判断一个页面的重要程度可从以下四点来检验:

(1)网页目录层次越少越好。这一方面利于用户体验,另一方面也会节省蜘蛛爬行的时间。

(2)高质量相关链接导入。从外部导入和自身相关度大的链接,可以增加页面权重。

(3)信息的新鲜度。一个有价值的网站每天都会更新内容,用户天天来看,蜘蛛也会天天来光顾。

(4)网页内容的原创性。原创性越高的网页重要性越高。