《HTTP权威指南》学习摘要

Web Robot的自活跃(self-animating)用户代理。

Web机器人是在不需要人工干预的情况下,自动进行一系列Web事务处理的软件程序,别名“爬虫“(crawler),”蜘蛛“(spider),”蠕虫“。

  1. 爬虫及爬行方式,Web法宠是一种机器人,他们会递归地对各种信息性Web站点进行遍历,获取第一个Web页面,然后获取那个页面指向的所有Web页面,然后好似那些页面所指向的所有Web页面,以此类推。递归地追踪这些Web连接的节气人会沿着HTML超链接创建的网络”爬行“,所以将其称为爬虫或蜘蛛。

    • 从哪里开始:根集
    • 链接的提取和相对链接的标准化
    • 避免环路的出现
    • 循环(loops)和复制(dups)
    • 面包屑留下的痕迹,由于URL的数量巨大,要使用复杂的数据结构以便快速判定那些URL是曾经访问过的。数据结构在访问速度和内存使用方面都应该是非常高效的。下面列出了大规模Web爬虫对其访问过的地址进行管理时使用的一些有用的技术。
      1. 树和散列表
      2. 有损的存在位图
      3. 检查点
      4. 分类,某些大型Web机器人会使用机器人”集群“,每个独立的计算机都是一个机器人,以汇接方式工作。为每个机器人分配一个特定的URL”片“,有其负责爬行。
    • 别名与机器人环路:如果两个URL看起来不一样,但实际指向的是同一资源,就称这两个URL互为”别名“。
    • 规范化URL,可以消除URL别名带来的重复空间
    • 文件系统连接环路
    • 动态虚拟Web空间
    • 避免循环和重复
      1. 规范化URL
      2. 广度优先的爬行:均匀的分配请求,而不是压在一个单一的服务器上。
      3. 节流
      4. 限制URL的大小
      5. URL/站点黑名单
      6. 模式检测
      7. 内容指纹
      8. 人工监视
  2. 机器人的HTTP。机器人和所有的其他HTTP客户端程序并没有什么区别,他们都要遵守HTTP规范中的规则。很多机器人都视图只实现请求他们所查找内容所需的最小HTTP集。  
    • 识别请求首部。在追踪错误爬虫的所有者,以及向服务提供机器人所能处理的内容类型时,请求首部很重要,所以,鼓励机器人实现者们使用如下内容:User-Agent,From,Accept,Refer。
    • 虚拟主机。机器人实现者要支持Host首部。
    • 条件请求。减少机器人所要获取内容的数量。条件HTTP请求,会对事件戳货实体标签进行比较。
    • 对响应的处理。状态码,实体。
    • User-Agent导向
  3. 行为不当的机器人:不守规矩的机器人会造成很多严重问题。这里列出了一些机器人可能会犯的错误。
    • 失控机器人,出现死循环,造成服务器大量的负载
    • 失效的URL
    • 很长的错误URL
    • 爱打听的机器人
    • 动态网关访问
  4. 拒绝机器人访问,在Web服务器的文档根目录中提供一个可选的、名为robts.txt的文件。
    • 拒绝机器人访问标准。没有正式的标准,都是非正式标准。
    • web站点和robots.txt文件
      • 获取robots.txt.机器人应该在From首部和User-Agent首部中传输标识信息,以帮助站点管理者对机器人的访问进行跟踪,并在站点管理者要查询,或投诉的机器人时间中提供一些联系信息。
      • 响应码,根据不同的响应码,机器人做出不同的行为。
      • robots.txt文件的格式。文件采用面向行的语法。有三种形式的行,空行,注释行和规则行。
        • User-Agent行,每个机器人记录都以一个或多个下列形式的User-Agent行开始(User-Agent:<robtot-name>或者User-Agent:*)。如果没有访问不受限。
        • Disallow和Allow行。紧跟在机器人排斥记录的User-Agent行之后。
        • Disallow/Allow前缀匹配。前缀匹配通常都能很好地工作,但有几种情况下它的表达力不够强。如果你希望无论使用什么路径前缀,都不允许爬行一些特别的子目录,那robots.txt是无能为力的。必须将子目录中的每条路劲都分别枚举出来。
        • 其他有关robots.txt的知识。机器人不识别的字段多忽略掉,中间不能断行,0.0版的拒绝机器人访问标准不支持Allow行。
        • 缓存和robots.txt的过期。机器人会周期性地获取robots.txt文件,并将得到的文件缓存起来。
        • 拒绝机器人访问的Perl代码.有几个公共的Perl库可以用来与robots.txt文件进行交互。CPAN公共Perl文档中的WWW::RobotsRules模块就是一个这样的例子。
        • HTML的robot-control元标签,eg <META NAME="ROBOTS" CONTENT=directive-list>。机器人的META指令。搜索引擎的META标签
  5. 机器人的规范 
  6. 搜索引擎
    1. 大格局。
    2. 现代搜索引擎的结构。构建一些名为“全文索引”的复杂本地数据库。
    3. 全文索引。就是一个数据库
    4. 发布查询请求。用户向Web搜索引擎网关发布一条请求时,会填写一个HTML表单,他的浏览器会用一个HTTP GET或POST请求将这个表单发送给网关。网关程序对搜索请求进行解析,并将Web UI查询转换成搜索全文索引所需要的表达式。
    5. 对结果进行排序,并提供查询结果。相关性排名(relevancy ranking)
    6. 欺诈(spoof)。

【HTTP】WEB机器人的更多相关文章

  1. HTTP权威协议笔记-9.Web机器人

    经过整个春节的放肆,终于回归了,说实话,春节真心比上班累. 9.1 爬虫及爬行方式 (1) 爬虫:Web爬虫是一种机器人,他们会递归性的对各种信息Web站点进行遍历. (2) 爬行方式:Web机器人会 ...

  2. HTTP第八、九章之网关、隧道、web机器人

    网关 网关(gateway): 资源和应用程序之间的粘合剂.应用程序可以(通过HTTP或其它已定义的接口)请求网关来处理某条请求,网关可以提供一条响应.网关可以向数据库发送查询语句,或者生成动态的内容 ...

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

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

  4. 引导篇之web结构组件

    web结构组件有如下几种: 代理 HTTP代理服务器,是Web安全.应用集成以及性能优化的重要组成模块.代理位于客户端和服务器之间,接收所有客户端的HTTP请求,并将这些请求转发给服务器(可能会对请求 ...

  5. atitit.http原理与概论attilax总结

    atitit.http原理与概论attilax总结 1. 图解HTTP 作者:[日]上野宣 著1 2. HTTP权威指南(国内首本HTTP及其相关核心Web技术权威著作)1 3. TCP/IP详解(中 ...

  6. 《HTTP 权威指南》

    第一篇:  Web基础  (HTTP概述. URL.HTTP报文.连接管理) 0. scheme:方案!     协议类型 1.HTTP:超文本传输(状态转移)协议:通信协议方案.     web浏览 ...

  7. 开源的49款Java 网络爬虫软件

    参考地址 搜索引擎 Nutch Nutch 是一个开源Java 实现的搜索引擎.它提供了我们运行自己的搜索引擎所需的全部工具.包括全文搜索和Web爬虫. Nutch的创始人是Doug Cutting, ...

  8. HTTP权威指南一

    HTTP——因 特网的多媒体信使 每天, 都有数以亿万计的 JPEG 图片. HTML 页面. 文本文件. MPEG 电影. WAV音频文件. Java 小程序和其他资源在因 特网 上游弋. HTTP ...

  9. 不惧面试:HTTP协议(1) - 基础扫盲

    v博客前言 先交代下背景,之前在一家公司面试.NET开发,去了先是做一份笔试题,有一半是关于HTTP协议的,技术总监直接面试,也是问一大堆HTTP协议的知识点,可能跟该公司的产品有关,该公司属于互联网 ...

随机推荐

  1. HUAWEI HiAI常见FAQ小贴士

    8月7日,HUAWEI HiAI系统架构师在CSDN平台为广大开发者进行了以“APP进阶实战:最快10分钟接入HUAWEI HiAI”主题的直播,迎来600多名开发者在线上观看. ​ 直播中,讲师详细 ...

  2. PHP安装加载yaf扩展

    Yaf,全称 Yet Another Framework,是一个C语言编写的PHP框架,是一个用PHP扩展形式提供的PHP开发框架, 相比于一般的PHP框架, 它更快. 它提供了Bootstrap, ...

  3. dropdown多选下拉框

    写好了一个dropdown多选框.直接粘下面代码就能用 效果展示: temp2.jsp <%@page import="com.util.LabelCacheManager" ...

  4. nginx 用法

    nginx配置location总结及rewrite规则写法 如何将 /health 重定向到 /health.html https://stackoverflow.com/questions/4614 ...

  5. 【转】锤子CTO钱晨:福利好是一种堕落的公司文化

    “这是拉勾网对锤子科技CTO钱晨的访谈,作为中国手机界三大产品经理之一,他带领着一众硬件工程师在手机红海中厮杀.钱晨喜欢焦虑的工程师,佩服有方向感的人. 本文作者:西岳 拉勾网原创出品,转载请注明作者 ...

  6. oracle怎么卸载

    Oracle Database,又名Oracle RDBMS,或简称Oracle.是甲骨文公司的一款关系数据库管理系统.到目前仍在数据库市场上占有主要份额.劳伦斯·埃里森和他的朋友,之前的同事Bob ...

  7. 嵌入式开发之davinci--- 8148/8168/8127 中的alsa音频pcm g711 和aac 音频格式

    (1)alsa pcm (2)g711 (3)aac (4) --------------author:pkf -------------------time:2-4 ---------------- ...

  8. Fedora13下编译busybox-1.15.0出现can not find lcrypt错误

    在Fedora 13 系统上编译busybox(非交叉编译)产生错误 root@localhost # make ... gcc -Wall -Wshadow -Wwrite-strings -Wun ...

  9. weblogic 8.1教程之部署(三)

    在 weblogic 都配置好了之后.就能够部署项目了. 部署项目的时候,能够大体分为两个步骤: 1,创建缓冲池: 2,配置数据源. 先启动 weblogicserver.进入weblogic 的主页 ...

  10. Linux网络编程(一)基础

    一.数据存储顺序:大端和小端 大端模式: 地址的增长顺序与值的增长顺序相反         小段模式: 地址的增长顺序与值的增长顺序同样 为什么会有大小端模式之分呢?这是由于在计算机系统中,我们是以字 ...