码迷,mamicode.com
首页 > Web开发 > 详细

【HTTP】WEB机器人

时间:2015-07-01 13:40:27      阅读:232      评论:0      收藏:0      [点我收藏+]

标签:

《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机器人

标签:

原文地址:http://www.cnblogs.com/hongdanning/p/4607274.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!