学习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字段更新通知。

本文为www.seowlyx.com的站长梁波(Ethan)原创,转载请注明,谢谢!

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com

特别注意:本站所有转载文章言论不代表本站观点!

本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。

服务器处理蜘蛛抓取网页的过程,搜索引擎蜘蛛抓取页面过程图解相关推荐

  1. Jsoup:用Java也可以爬虫,怎么使用Java进行爬虫,用Java爬取网页数据,使用Jsoup爬取数据,爬虫举例:京东搜索

    Jsoup:用Java也可以爬虫,怎么使用Java进行爬虫,用Java爬取网页数据,使用Jsoup爬取数据,爬虫举例:京东搜索 一.资源 为什么接下来的代码中要使用el.getElementsByTa ...

  2. 蜘蛛爬取网页服务器卡死,总结搜索引擎蜘蛛抓取不到页面的原因及改善措施

    在诊断过程中,我们会遇到这样的问题.有些网页内容很好,用户可以正常访问.然而,搜索引擎蜘蛛只是不能正常访问和抓取它们,导致搜索结果覆盖率不足,这是百度等搜索引擎和网站的损失.百度称之为"抢夺 ...

  3. matlab抓取网页信息,如何利用Matlab抓取网页数据

    如何利用Matlab抓取网页数据 2019-01-01 %朋友需要做金融方面的分析,要求从网站上下载大量的数据,一个一个复制粘贴太费事.我写了一个简单的网络爬虫,主要用到正则表达式,可以自动下载网页源 ...

  4. java爬虫抓取网页数据论坛_Java爬虫抓取网页

    Java爬虫抓取网页原作者:hebedich  原文链接 下面直接贴代码: import java.io.BufferedReader; import java.io.InputStreamReade ...

  5. python爬取网页停止_Python爬虫之爬取静态网页

    所谓网络爬虫,通俗的讲,就是通过向我们需要的URL发出http请求,获取该URL对应的http报文主体内容,之后提取该报文主体中我们所需要的信息.所以,想要学习python爬虫,需要具备一些http的 ...

  6. python正则表达式爬取网页数据_常用正则表达式爬取网页信息及HTML分析总结

    Python爬取网页信息时,经常使用的正则表达式及方法. 1.获取 标签之间内容2.获取 超链接之间内容3.获取URL最后一个参数命名图片或传递参数4.爬取网页中所有URL链接5.爬取网页标题titl ...

  7. beautifulsoup爬取网页中的表格_PYTHON爬取数据储存到excel

    PYTHON爬取数据储存到excel 大家周末好呀,我是滑稽君.前两天上网课时朋友发来消息说需要爬取一些数据,然后储存到excel里.记得我公众号里发过关于爬虫的文章,所以找我帮个忙.于是滑稽君花时间 ...

  8. python爬取网页数据流程_Python爬虫爬取数据的步骤

    爬虫: 网络爬虫是捜索引擎抓取系统(Baidu.Google等)的重要组成部分.主要目的是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份. 步骤: 第一步:获取网页链接 1.观察需要爬取的多 ...

  9. python 爬取网页 通知消息_python简单爬取页面信息及实现打开、关闭浏览器

    声明:本文仅是为了学习而举例说明python的强大,禁止用于不良目的! 1.python可以打开浏览器并浏览网页,并且保存网页内容到本地硬盘 实现代码如下: import urllib import ...

最新文章

  1. php设计模式中的类型安全 指--只接受特定的对象 ---以避免发生错误
  2. ASP.NET MVC学习系列(一)-WebAPI初探
  3. [并发编程] - 操作系统底层工作原理
  4. 小伙用智能 AI 修复100 年前京城的老视频
  5. 如何定位死循环或高CPU使用率(linux)
  6. javaScript学习笔记之比较运算符||逻辑运算符||条件运算符(三目运算符)
  7. 在线电脑配置PHP源码,域名授权系统PHP源码 V2.7.0 支持盗版追踪
  8. 华为企业互动社区云计算板块
  9. 人要抱着希望才能活得好
  10. php面向对象封装mysql_PHP mysqli 扩展库(面向对象/数据库操作封装/事务控制/预编译)...
  11. 常用命令-JAVA大数据-Week5-DAY2-linux
  12. 简易java电子词典_使用Android简单实现有道电子词典
  13. SAS计算IV代码分享
  14. 新手写的一个12306刷票工具
  15. OpenCV3之——霍夫变换(霍夫线变换和霍夫圆变换)
  16. C++字符串操作函数strstr,strcmp,strlen,strcpy,strcat,strok
  17. dos命令之 assoc 用法详解
  18. JAVA中RandomAccess接口
  19. 各品牌手机音视频格式支持一览表收藏
  20. Clickhouse副本与分片

热门文章

  1. web网页设计期末课程大作业:我的家乡文化主题网站设计——山西
  2. 【IEEE T-PAMI 2020直播预告】完备性多模态融合技术
  3. RPA or 爬虫?模拟人工访问某服务平台—增加空间的访问量
  4. 2016北京集训测试赛(九)Problem C: 狂飙突进的幻想乡
  5. 基于JAVA SSM框架的学校家长互动学习平台
  6. 计算机排名2018全国,2018全国90所计算机专业大学排名,分为ABC三个等级
  7. Spark程序性能优化之persist()
  8. 建网站论坛需要多大服务器,论坛搭建如何选择服务器
  9. 解决百度网盘限速超简单
  10. 基础算法--背包问题(01背包问题、完全背包问题、多重背包问题、分组背包问题)