【HTTP】WEB机器人
《HTTP权威指南》学习摘要
Web Robot的自活跃(self-animating)用户代理。
Web机器人是在不需要人工干预的情况下,自动进行一系列Web事务处理的软件程序,别名“爬虫“(crawler),”蜘蛛“(spider),”蠕虫“。
- 爬虫及爬行方式,Web法宠是一种机器人,他们会递归地对各种信息性Web站点进行遍历,获取第一个Web页面,然后获取那个页面指向的所有Web页面,然后好似那些页面所指向的所有Web页面,以此类推。递归地追踪这些Web连接的节气人会沿着HTML超链接创建的网络”爬行“,所以将其称为爬虫或蜘蛛。
- 从哪里开始:根集
- 链接的提取和相对链接的标准化
- 避免环路的出现
- 循环(loops)和复制(dups)
- 面包屑留下的痕迹,由于URL的数量巨大,要使用复杂的数据结构以便快速判定那些URL是曾经访问过的。数据结构在访问速度和内存使用方面都应该是非常高效的。下面列出了大规模Web爬虫对其访问过的地址进行管理时使用的一些有用的技术。
- 树和散列表
- 有损的存在位图
- 检查点
- 分类,某些大型Web机器人会使用机器人”集群“,每个独立的计算机都是一个机器人,以汇接方式工作。为每个机器人分配一个特定的URL”片“,有其负责爬行。
- 别名与机器人环路:如果两个URL看起来不一样,但实际指向的是同一资源,就称这两个URL互为”别名“。
- 规范化URL,可以消除URL别名带来的重复空间
- 文件系统连接环路
- 动态虚拟Web空间
- 避免循环和重复
- 规范化URL
- 广度优先的爬行:均匀的分配请求,而不是压在一个单一的服务器上。
- 节流
- 限制URL的大小
- URL/站点黑名单
- 模式检测
- 内容指纹
- 人工监视
- 机器人的HTTP。机器人和所有的其他HTTP客户端程序并没有什么区别,他们都要遵守HTTP规范中的规则。很多机器人都视图只实现请求他们所查找内容所需的最小HTTP集。
- 识别请求首部。在追踪错误爬虫的所有者,以及向服务提供机器人所能处理的内容类型时,请求首部很重要,所以,鼓励机器人实现者们使用如下内容:User-Agent,From,Accept,Refer。
- 虚拟主机。机器人实现者要支持Host首部。
- 条件请求。减少机器人所要获取内容的数量。条件HTTP请求,会对事件戳货实体标签进行比较。
- 对响应的处理。状态码,实体。
- User-Agent导向
- 行为不当的机器人:不守规矩的机器人会造成很多严重问题。这里列出了一些机器人可能会犯的错误。
- 失控机器人,出现死循环,造成服务器大量的负载
- 失效的URL
- 很长的错误URL
- 爱打听的机器人
- 动态网关访问
- 拒绝机器人访问,在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标签
- 机器人的规范
- 搜索引擎
- 大格局。
- 现代搜索引擎的结构。构建一些名为“全文索引”的复杂本地数据库。
- 全文索引。就是一个数据库
- 发布查询请求。用户向Web搜索引擎网关发布一条请求时,会填写一个HTML表单,他的浏览器会用一个HTTP GET或POST请求将这个表单发送给网关。网关程序对搜索请求进行解析,并将Web UI查询转换成搜索全文索引所需要的表达式。
- 对结果进行排序,并提供查询结果。相关性排名(relevancy ranking)
- 欺诈(spoof)。
【HTTP】WEB机器人的更多相关文章
- HTTP权威协议笔记-9.Web机器人
经过整个春节的放肆,终于回归了,说实话,春节真心比上班累. 9.1 爬虫及爬行方式 (1) 爬虫:Web爬虫是一种机器人,他们会递归性的对各种信息Web站点进行遍历. (2) 爬行方式:Web机器人会 ...
- HTTP第八、九章之网关、隧道、web机器人
网关 网关(gateway): 资源和应用程序之间的粘合剂.应用程序可以(通过HTTP或其它已定义的接口)请求网关来处理某条请求,网关可以提供一条响应.网关可以向数据库发送查询语句,或者生成动态的内容 ...
- 【读书笔记】《HTTP权威指南》:Web Robots
一.概述 Web机器人(Web Robots)是一种Web客户端的软件程序,它自动发起一系列的Web事务,从而在没有人工参与的状态下完成各种Web数据的搜集和处理. 典型的Web机器人有: 股票绘图机 ...
- 引导篇之web结构组件
web结构组件有如下几种: 代理 HTTP代理服务器,是Web安全.应用集成以及性能优化的重要组成模块.代理位于客户端和服务器之间,接收所有客户端的HTTP请求,并将这些请求转发给服务器(可能会对请求 ...
- atitit.http原理与概论attilax总结
atitit.http原理与概论attilax总结 1. 图解HTTP 作者:[日]上野宣 著1 2. HTTP权威指南(国内首本HTTP及其相关核心Web技术权威著作)1 3. TCP/IP详解(中 ...
- 《HTTP 权威指南》
第一篇: Web基础 (HTTP概述. URL.HTTP报文.连接管理) 0. scheme:方案! 协议类型 1.HTTP:超文本传输(状态转移)协议:通信协议方案. web浏览 ...
- 开源的49款Java 网络爬虫软件
参考地址 搜索引擎 Nutch Nutch 是一个开源Java 实现的搜索引擎.它提供了我们运行自己的搜索引擎所需的全部工具.包括全文搜索和Web爬虫. Nutch的创始人是Doug Cutting, ...
- HTTP权威指南一
HTTP——因 特网的多媒体信使 每天, 都有数以亿万计的 JPEG 图片. HTML 页面. 文本文件. MPEG 电影. WAV音频文件. Java 小程序和其他资源在因 特网 上游弋. HTTP ...
- 不惧面试:HTTP协议(1) - 基础扫盲
v博客前言 先交代下背景,之前在一家公司面试.NET开发,去了先是做一份笔试题,有一半是关于HTTP协议的,技术总监直接面试,也是问一大堆HTTP协议的知识点,可能跟该公司的产品有关,该公司属于互联网 ...
随机推荐
- Atitit.收银系统pos 以及打印功能的行业标准
Atitit.收银系统pos 以及打印功能的行业标准 1. ESC指令序列 Escape指令序列不同于ESC/POS指令 1 2. 打印标准OPOS POSPrinter 与 CashDrawer 驱 ...
- python 学习方法
依据本人的学习经验,我总结了下面十点和大家分享: 1)学好python的第一步.就是立即到www.python.org站点上下载一个python版本号.我建议刚開始学习的人,不要下载具有IDE功能的集 ...
- c++ simple class template example: Stack
main.cpp #include "Stack.h" #include <iostream> using namespace std; class Box { pub ...
- JVM内存监控:visualVM jconsole jstatd jmap
本文是亲自测试的详细配置过程,不是转载而且linux下不需修改/etc/hosts文件 由于在建项目的需要,监控tomcat的内存使用,检查内存泄漏的情况.其实JDK自身已经提供了很多工具,都在JAV ...
- Windows 7 SP1和Windows Server 2008 SP1的Event ID 10错误的解决方法
安装了Windows 7 Service Pack 1 (SP1) 或 Windows Server 2008 R2 Service Pack 1 (SP1)都会遇到此错误提示. "Even ...
- spring 第一篇(1-1):让java开发变得更简单(上)
1.释放POJOS能量 传统开发中是如何束缚POJOS呢,如果你开发过java很长时间,那你一定有接触过EJB的开发.那时候开发一个小小的功能都要扩展框架的类或者实现其接口.所以你很容易在早期的Str ...
- android属性动画之ValueAnimator
楼主前段时间做一个android项目,其中一个需求是需要制作一个动画,但是之前楼主没接触过android动画,所以在网上搜了下,并且也有人推荐可以试下用属性动画,所以我就百度了下属性动画怎么用,并顺便 ...
- Beamer加中文
\documentclass{beamer} \mode<presentation> { \usetheme{CambridgeUS} % or try Darmstadt, Madrid ...
- 第一百八十六节,jQuery,验证表单插件,Ajax 表单插件,验证和提交表单
jQuery,验证表单插件,Ajax 表单插件,验证和提交表单 HTML <form id="reg" method="post" action=&quo ...
- 第一百七十二节,jQuery,动画效果
jQuery,动画效果 学习要点: 1.显示.隐藏 2.滑动.卷动 3.淡入.淡出 4.自定义动画 5.列队动画方法 6.动画相关方法 7.动画全局属性 一.显示.隐藏 jQuery 中显示方法为:. ...