搜索引擎蜘蛛抓取页面过程图解
学习seo的人经常在网上看到一句话:搜索引擎蜘蛛跟浏览器差不多,都是抓取页面。那么到底哪些一样哪些不一样?Ethan就通过浏览器帮助大家理解搜索引擎蜘蛛怎样抓取页面。
首先看一张图,是用firebug(firefox浏览器的一个著名插件)记录下来的浏览器抓取我网站的情况。
搜索引擎蜘蛛
搜索引擎蜘蛛
搜索引擎蜘蛛
针对图中标识,Ethan解释如下。
1.http协议开始,HTTP协议是典型的请求/响应模式,客户端请求服务器,然后客户端和服务器建立临时通道,然后服务器返回响应。这里浏览器是一种客户端程序,搜索引擎蜘蛛也是一种客户端程序。客户端向服务器发送请求行,然后是请求头信息。图中左上角有“GET www.***.com”,反映了请求行的内容,真正的请求行是下面这行,firebug没有明示:
“GET / HTTP/1.1”
这行的格式是:
请求方法(get、post等)+一个空格+请求的URL(这里“/”表示首页)+一个空格+http协议版本(现在通常是HTTP/1.1,就是http协议1.1版)
记住这个格式,我们在服务器日志里还会看到这种格式的数据。
请求行后面紧跟着请求头信息,其中第一行是host字段,指明了服务器是www.***.com,这是个域名,通过DNS域名解析,变成ip地址,也就是服务器的物理地址。
2.ip地址,后面冒号加80,表明访问的是服务器的80端口。服务器一直处于待命状态,侦听80端口,一旦发现有符合HTTP协议的头信息发过来,就和客户端建立一个临时通道,然后进行内部处理,并把结果通过临时通道返回给客户端。在这个处理的同时,服务器还可以接受其它HTTP请求。
3.客户端开始接收响应信息,最先过来的是状态行,真正的状态行是下面这行,firebug没有明示:
“HTTP/1.1 200 OK”
这里的200就是状态码,表示网页顺利打开。
4.然后客户端收到响应头信息。
5.最后客户端收到响应主体,也就是html代码。
6.注意这里浏览器和搜索引擎蜘蛛不同,浏览器会对html代码进行处理,呈现出我们看得懂的网页;搜索引擎蜘蛛则只负责抓取,把html代码存在数据库里,自己快速去抓取下一个网页。搜索引擎在各地都有蜘蛛服务器,每个服务器同时放出很多蜘蛛,日夜不停地抓取网页。
7.注意响应头信息里有一行gzip,表示html代码经过了gzip压缩。不过没有关系,浏览器和搜索引擎蜘蛛都可以解压缩gzip文件。
8.html代码的大小,如果不压缩,远不止6k。搜索引擎对网页文件大小有个上限,一种说法是128k(未压缩),超过128k的内容不再抓取。
9.注意User-Agent,正是请求头信息里的这个字段,告诉服务器抓取网页的是浏览器还是搜索引擎蜘蛛。有的服务器为了不让百度蜘蛛抓取,会封禁百度蜘蛛的User-Agent,参见百度站长俱乐部发布的百度Spider User-Agent字段更新通知。