zoukankan      html  css  js  c++  java
  • 【HTTP】WEB机器人

    《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)。
  • 相关阅读:
    【Programming Clip】位运算的应用
    【Linux实用技术】LFS6.3构建实录
    【嵌入式开发技术之环境配置】Ubuntu下 TFTP服务的配置
    IIS上注册.Net
    C#高效分页代码(不用存储过程)
    OpenDataSOurce 指定参数
    存储过程中while循环
    SQL语句中的判断(条件语句)
    C#.NET支付宝接口
    局域网共享访问要密码 局域网访问需要密码 访问网上邻居需要密码 局域网不能共享 windows xp共享
  • 原文地址:https://www.cnblogs.com/hongdanning/p/4607274.html
Copyright © 2011-2022 走看看