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