9.4 拒绝机器人访问

本文详细介绍了如何使用robots.txt文件来控制Web站点上机器人访问的规则,包括获取robots.txt、响应码的含义、文件格式、User-Agent行、Disallow和Allow行的使用,以及Perl代码示例和HTML的robot-control元标签。robots.txt是一种标准,允许网站管理员限制机器人对特定内容的访问,确保数据安全和网站性能。
摘要由CSDN通过智能技术生成
  • 拒绝机器人访问标准:1994 年,人们提出了一项简单的自愿约束技术,可以将机器人阻挡在不适合它的地方之外,并为网站管理员提供了一种能够更好地控制机器人行为的机制。这个标准被称为“拒绝机器人访问标准”,但通常只是根据存储访问控制信息的文件而将其称为 robots.txt。
  • robots.txt 的思想很简单。所有 Web 服务器都可以在服务器的文档根目录中提供一个可选的、名为 robots.txt 的文件。这个文件包含的信息说明了机器人可以访问服务器的哪些部分。如果机器人遵循这个自愿约束标准,它会在访问那个站点的所有其他资源之前,从 Web 站点请求 robots.txt 文件。
    这里写图片描述

1. 拒绝机器人访问标准

版本 标题及描述 日期
0.0 拒绝机器人标准——Martijn Koster 提出的带有 Disallow(不允许)指令的原始 robots.txt 机制 1994 年 6 月
1.0 控制 Web 机器人的方法——Martijn Koster 提供了额外支持 Allow (允许)的 IETF 草案 1996 年 11 月
2.0 拒绝机器人访问的扩展标准——Sean Conner 提出的扩展标准,包括了正则表达式和定时信息;没有得到广泛的支持 1996 年 11 月
  • 现在大多数机器人采用的都是标准 v0.0 或 v1.0。重点介绍 v1.0 标准,因为它的应用很广泛,而且与 v0.0 完全兼容。

2. Web 站点和 robots.txt 文件

  • 如果一个 Web 站点有 robots.txt 文件,那么在访问这个 Web 站点上的任意 URL 之前,机器人都必须获取它并对其进行处理。尽管我们说的是 robots.txt 文件,但 robots.txt 资源并不一定要严格地位于文件系统中。比如,可以由一个网关应用程序动态地生成这个 robots.txt 资源。
  • 由主机名和端口号定义的整个 Web 站点上仅有一个 robots.txt 资源。如果这个站点是虚拟主机,每个虚拟的 docroot 都可以有一个不同的 robots.txt 文件,像所有其他文件一样。
  • 通常不能在 Web 站点上单独的子目录中安装“本地”robots.txt 文件。网管要负责 创建一个聚合型 robots.txt 文件,用以描述 Web 站点上所有内容的拒绝访问规则。

1. 获取 robots.txt

  • 机器人会用 HTTP 的 GET 方法来获取 robots.txt 资源,就像获取 Web 服务器上所有其他资源一样。如果有 robots.txt 文件的话,服务器会将其放在一个 text/plain 主体中返回。如果服务器以 404 Not Found HTTP 状态码进行响应,机器人就可以认为这个服务器上没有机器人访问限制,它可以请求任意的文件。
  • 机器人应该在 From 首部和 User-Agent 首部中传输标识信息,以帮助站点管理者对机器人的访问进行跟踪,并在站点管理者要查询,或投诉的机器人事件中提供一些联系信息。下面是一个来自商业 Web 机器人的 HTTP 爬虫请求实例:
GET /robots.txt HTTP/1.0
Host: www.joes-hardware.com 
User-Agent: Slurp/2.0
Date: Wed Oct 3 20:22:48 EST 2001

2. 响应码

很多 Web 站点都没有 robots.txt 资源,但机器人并不知道这一点。它必须尝试着从每个站点上获取 robots.txt 资源。机器人会根据对 robots.txt 检索的结果采取不同的行动:
* 如果服务器以一个成功状态(HTTP 状态码 2XX)为响应,机器人就必须对内容进行解析,并使用排斥规则从那个站点上获取内容。
* 如果服务器响应说明资源并不存在(HTTP 状态码 404),机器人就可以认为服务器没有激活任何排斥规则,对此站点的访问不受 robots.txt 的限制。
* 如果服务器响应说明有访问限制(HTTP 状态码 401 或 403),机器人就应该认为对此站点的访问是完全受限的。
* 如果请求尝试的结果是临时故障(HTTP 状态码 503),机器人就应该推迟对此站点的访问,直到可以获取该资源为止。
* 如果服务器响应说明是重定向(HTTP 状态码 3XX),机器人就应该跟着重定向,直到找到资源为止。

3. robots.txt 文件的格式

  • robots.txt 文件采用了非常简单的,面向行的语法。robots.txt 文件中有三种类型的行:空行、注释行和规则行。规则行形式为“名:值”对,用于匹配模式:
# this robots.txt file allows Slurp & Webcrawler to crawl 
#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值