经过整个春节的放肆,终于回归了,说实话,春节真心比上班累。

9.1 爬虫及爬行方式

  (1) 爬虫:Web爬虫是一种机器人,他们会递归性的对各种信息Web站点进行遍历。

  (2) 爬行方式:Web机器人会获取Web页面,然后获取这个页面指向的所有Web页面,再指向这个站点所指向的页面,依次类推。

  (3) 从哪儿开始:根集

  爬虫在开始访问的URL初始集合被称为根集。通常一个好的根集会包括一些大的流行Web站点、一个新创建的列表和一个不经常被链接的的无页面列表.

  (4) 链接的提取:爬虫在在Web上移动时,会不断对HTML进行解析,它会对每个链接进行解析,并将这些链接添加到需要爬行的页面列表上去,最终爬虫会将这些相对URL转换为绝对URL。

  (5) 避免环路:爬虫会根据链接在Web页面间不停跳转,在跳转期间要防止其 访问A页面-》访问B页面-》访问C-页面-》访问A页面  的循环状态(文件系统同样会存在该情况)。

    后果:1.消耗网络带宽,导致无法获取其他页面。

         2.爬虫环路不断访问页面的过程中,另一端的服务器也在遭受打击,可能会造成击垮站点,阻止所有正常用户访问站点。

  (6) 爬虫对对访问地址的管理技术

    1.树和散列表:通过搜索树或散列表来记录已访问的URL,这样加速了访问速度。

    2.有损的存在位图:将URL转换为一定长度的数组,这个数组中有个相关的“存在位”,在爬过URL时会将该“存在位”置位,爬虫在再次访问该URL时会发现已访问。

    3.检查点:将已访问的URL列表保存到硬盘上,以防止机器人崩溃。

    4.分类:为每个机器人分配一个特定的URL“片”,由其负责爬行。

  (7) 别名与机器人回路:由于URL的默认端口是否隐藏即会造成回路存在。

  (8) 避免循环和重复

    1.规范URL

    2.广度优先的爬行

    3.节流(限制机器人从一个网站获取的页面数量)

    4.限制URL大小(环路会使URL长度增加,限制URL长度可有效防止无限循环)

    5.URL/站点黑名单

    6.模式检测(通过重复组件的环路模式进行检测,可拒绝继续环路访问)

    7.内容指纹(通过对URL站点内容相同的校验,得出是否访问过,并是否继续访问)

    8.人工监视

9.2 机器人的HTTP

  机器人同样遵循手HTTP规范的规则,

  1.识别请求首部

  建议机器人实现者发送基本首部信息:

  • User-Agent:机器人名称
  • From:机器人的用户/管理者的邮箱
  • Accept:告知服务器可以发送哪些媒体类型
  • Referer:提供包含当前请求URL的文档URL

  2. 虚拟主机  

  在默认情况下,大多数服务器都会默认的配置一个特定的站点,因此,不包含host的爬虫访问提供两个站点的服务器发出请求时,会造成返回值失误。

  3.条件请求

  机器人只有在内容发生变化时才重新获取内容是有意义的,因此,有些机器人实现了条件HTTP请求,他们会对时间戳或者实体签进行比较,之后确认是否继续获取。

  4.对响应的处理

    1.状态码

    2.实体

  5.User-Agent导向

   很多站点会为不同的用户代理进行内容优化,并尝试对浏览器类型进行检测,以确保支持各种特性,当机器人进行访问时,站点会为机器人提供出错页面而不是请求页面。

   站点管理者应该设计一个处理机器人请求的策略。

9.3 行为不当的机器人

  • 失效机器人(造成服务器过载,拒绝为其他人服务)
  • 失效的URL(如果一个网页经过大量修改,而机器人依然访问之前记录的该网页内容,机器人会对大量不存在的URL发起请求)
  • 很长的错误URL(URL过长会降低Web服务器性能)
  • 爱打听的机器人(请求私有文档,敏感数据)
  • 动态网关访问

9.4 拒绝机器人访问

  服务器文档中提供一份Robots.txt,其中标明机器人可以访问服务器的哪些部分,机器人请求时从Web站点首先请求该文档,然后继续访问数据。

  Robots.txt具有特有格式及参数,学习不认真,略了。

HTTP权威协议笔记-9.Web机器人的更多相关文章

  1. HTTP权威协议笔记-5.Web服务器

    5.1 Web服务器工作内容 建立连接--接受一个客户端的连接,或者将其拒绝 接受请求--从网络中读取一条HTTP报文 处理请求--对请求报文进行解释,并采取行动 访问资源--访问报文中指定的资源 构 ...

  2. HTTP权威协议笔记-7.集成点:网关、隧道及中继

    .8.1 网关 定义:网关类似与翻译器,它抽象出了一种能够到达资源的方法. 实用:网关可以自动将HTTP流量转换为其他协议,这样使用HTTP协议的一方就不需要了解其他协议,也可实现与其他程序或设备交互 ...

  3. HTTP权威协议笔记-6.代理

    6.1 Web的中间实体 Http的代理服务器即是客户端的服务器又是服务器的客户端. 它介于服务器与客户端之间,当客户端发送请求报文经过它时,它会像服务器一样正确的处理请求和返回响应,同时,代理服务器 ...

  4. HTTP权威协议笔记-10.HTTP-NG

    1.HTTP发展中存在的问题 复杂性   其连接.报文.及功能逻辑之间的混合使用相当复杂,使用容易出错 可扩展性 传统流行下来的http应用很难实现扩展性,且无法兼容 性能      高延时.低吞吐 ...

  5. HTTP权威协议笔记-8.集成点:网关、隧道及中继

    .8.1 网关 定义:网关类似与翻译器,它抽象出了一种能够到达资源的方法. 实用:网关可以自动将HTTP流量转换为其他协议,这样使用HTTP协议的一方就不需要了解其他协议,也可实现与其他程序或设备交互 ...

  6. HTTP权威协议笔记-7.缓存

    7.1 冗余的数据传输 缓存的作用:当客户端每次访问服务器,服务器都会返回一份相同文件,一些相同的字节会不断的在网络内传输,这样冗余的数据传输会耗尽昂贵的带宽,降低传输速度,加重Web服务器的负载. ...

  7. HTTP权威协议笔记-4.连接管理

    4.1 TCP连接 TCP为HTTP提供了一条可靠的比特传输管道,按顺序正确的传输,步骤如下: 浏览器解析主机名. 查询这个主机名的IP地址(DNS) 获得端口号. 浏览器对服务器该端口号发起连接. ...

  8. HTTP权威协议笔记-3.Http报文

    3.1 报文流 http使用流入和流出来描述事物处理方向,报文包含:起始行.首部和主体. 3.2 起始行 起始行包含:请求行和回应行. 3.2.1请求行 请求行包含:方法.请求URL(描述了对哪个资源 ...

  9. 【读书笔记】《HTTP权威指南》:Web Robots

    一.概述 Web机器人(Web Robots)是一种Web客户端的软件程序,它自动发起一系列的Web事务,从而在没有人工参与的状态下完成各种Web数据的搜集和处理. 典型的Web机器人有: 股票绘图机 ...

随机推荐

  1. (转)分布式文件存储FastDFS(六)FastDFS多节点配置

    http://blog.csdn.net/xingjiarong/article/details/50759918 前面几篇关于FastDFS的博客中介绍了如何在一台机器上搭建一个简易的FastDFS ...

  2. C# 获得Properties下的定义的资源

    var str1 = Properties.Resources.ResourceManager.GetObject("String1", null); string url = S ...

  3. 从 UI 交互角度说语音识别产品

    语言是人类进化的主要特征,而人工智能拥有了说话的能力也是科技进步的一个特征.在很多科幻的电影里面,我们可以看到人工智能的身影.在电影 her 里面见到的人工智能,真的让人叹为观止,他可以随意的和你聊天 ...

  4. 通过javascript在iframe中加载html

    在spring mvc中,虽然有时候,在控制器中设置返回值是json对象,但在拦截器出现错误的时候,仍然可能返回html(根据设置的不同),如果要展示这些html,最好把他们放入iframe中,以防这 ...

  5. (C/C++学习)12.获取系统时间制作时钟(system()略解)

    说明:通过调用函数来获取系统当前时间,并制作一个数字式的时钟,时钟的显示包括年.月.日.小时.分以及秒,通过系统屏幕的刷新来对不断更新的时间进行屏幕的显示. 一.对相关函数的学习 1.time_t t ...

  6. 7-11 社交网络图中结点的“重要性”计算 (30 分)(Dijkstra算法)

    题意:  思路:对每个输入的点跑一遍dijkstra算法,然后对这个点到所有点的距离求和按公式输出就可以了. (这次尝试了用数组模拟链表来做最短路问题,刷新了自己对最短路的理解) 这里构造链表的过程我 ...

  7. Tomcat启动失败--Several ports (8005, 8080, 8009)

    启动Tomcat服务器报错: Several ports (8005, 8080, 8009) required by Tomcat v7.0 Server at localhost are alre ...

  8. PAT 1109 Group Photo

    Formation is very important when taking a group photo. Given the rules of forming K rows with N peop ...

  9. 简单的SpringBoot环境搭建

    开始搭建前请确认您的计算机中的Maven已正确配置 一:使用IDEA创建一个Maven项目,图中第一个指针请选择自己正在使用的JDK版本,指针二请打勾,选中指针三所指向的类型并点击Next 二:填写G ...

  10. redis学习五,redis集群搭建及添加主从节点

    redis集群 java架构师项目实战,高并发集群分布式,大数据高可用,视频教程 在redis3.0之前,出现了sentinel工具来监控各个Master的状态(可以看上一篇博客).如果Master异 ...