机器人排除标准 robot.txt robot exclusion standard
18.2 什么是机器人排除标准
《搜索引擎优化宝典(第2版)》第18章机器人、蜘蛛和爬虫,本章主要的内容有:什么是机器人、爬虫和蜘蛛;什么是机器人排除标准; Robots 元标签;用XML 网站地图使网页被收录。本节为大家介绍什么是机器人排除标准虫。
- 作者:马煜 译来源:清华大学出版社|2010-07-19 21:40
开发者大赛路演 | 12月16日,技术创新,北京不见不散
18.2 什么是机器人排除标准
根据前面的介绍,确实有必要对爬虫的行为做出一定的限制。这种限制称为机器人排除标准(robot exclusion standard)或是机器人排除协议(robot exclusion protocol),或是robot.txt。
这些东西的本质就是robot.txt 文件。这个文本文件应该放在网站的根目录下,其中就说明了网站中的哪些网页是爬虫不能索引的。
需要使用特定的语法才能使爬虫理解文件中的含义。这个文本文件的基本形式如下:
- User-agent: *
- Disallow: /
这两个部分是必需的。第一个部分,User-agent:,是告诉爬虫所针对的是哪个用户代理(user agent),实际上就是爬虫。星号(*)表示所有的爬虫,也可以指定一个或若干个爬虫。
第二个部分,Disallow:,是告诉爬虫哪些地方是不能访问的。斜杠(/)表示“所有目录”。所以在前面的这个例子中,这个robot.txt 文件的意思就是“任何爬虫都要忽略所有的目录”。
在编写robot.txt 文件时,要记得在User-agent 和Disallow 指令后面加上冒号(:)。冒号后面的信息就是要求爬虫注意的信息。
在实际情况下,很少会要求爬虫忽略所有的目录。可以要求爬虫忽略网站总的临时目录,robot.txt 的内容如下:
- User-agent: *
- Disallow: /tmp/
也可以进一步要求爬虫忽略若干个目录:
- User-agent: *
- Disallow: /tmp/
- Disallow: /private/
- Disallow: /links/listing.html
这段代码就是告诉爬虫忽略临时目录、私人目录以及内容是链接的网页——爬虫也就无法跟踪网页中的链接。
要注意,爬虫对robot.txt 是从上至下读取的,一旦发现合适的规定就会停止读取,并开始根据规则访问网站。所以,如果在robot.txt 文件中对多个爬虫制定访问规则,就一定要小心。
下面的用法就是错误的:
- User-agent: *
- Disallow: /tmp/
- User-agent: CrawlerName
- Disallow: /tmp/
- Disallow: /links/listing.html
这段代码首先是告诉所有的爬虫要忽略临时目录。因此,所有的爬虫在读取这个文件时都会忽略临时目录。但这段代码接着又不允许某个特定的爬虫(用CrawlerName 表示)访问临时目录和listing 网页中的链接。但问题是,这个特定的爬虫根本就不会接收到这条指令,因为它已经根据第一条命令忽略了临时目录,开始读取网站的其他部分。
如果要对不同的爬虫发出不同的命令,应该先写针对特定爬虫的命令。将针对所有爬虫的命令放在最后面。将前一个例子修改正确后,应该如下所示:
- User-agent: CrawlerName
- Disallow: /tmp/
- Disallow: /links/listing.html
- User-agent: *
- Disallow: /tmp/
上面这种技巧可以很方便地使爬虫忽略网站中的某个网页或链接,而无需使其忽略整个网站或整个目录,也无需在每个网页中逐个地加入元标签。
不同的搜索引擎爬虫有不同的名字,在Web 服务器的记录中应该能看到这些名字。下面列出了一些常见的搜索引擎爬虫的名称:
Google:Googlebot
MSN:MSNbot
Yahoo! Web Search:Yahoo SLURP 或简称SLURP
Ask:Teoma
AltaVista:Scooter
LookSmart:MantraAgent
WebCrawler:WebCrawler
SearchHippo:Fluffy the Spider
这里只是列出了很少的一部分搜索引擎爬虫。在Web Robots Pages(www.robotstxt.org)
上可以找到完整列表,以及机器人排除标准(Robot Exclusion Standard)文档。应该花点时间阅读该文档。这份文档不长,通读一下有助于理解爬虫与网站之间的交互方式。这方面的深入理解也有助于更好地控制爬虫对网站的访问。
有必要知道爬虫属于哪个搜索引擎,因为还有一些恶意的爬虫(spambot)也会检索网站。如果不知道这些爬虫的名称,就无法阻止这些爬虫对网站的恶意访问,也不能确保用户信息的安全。恶意爬虫非常讨厌,它们会搜索网站中的所有信息,收集其中的电子邮箱地址。这些地址被收集到一起之后就卖给广告商,甚至有可能卖给非法组织。几乎所有的恶意爬虫都不会理睬robots.txt 文件。
在网站的基本地址后面加上robots.txt,就能看到各个网站的robots.txt 文件。例如,访问www.sampleaddress.com/robots.txt 就能看到该网站的robots.txt 文本文件。如果通过这样的链接没能看到网站的robots.txt 文件,那这个网站就没有robots.txt。
可以用任何文本编辑器来创建robots.txt 文件。要记住,并不是每个人都需要robots.txt文件。如果不在意是谁在检索网站,那就没必要使用这个文件。但不管怎么样,都不要使用空白的robots.txt 文件。在爬虫看来,空文件意味着网站不愿意被任何爬虫检索。所以,使用空白文件可以使网站不出现在搜索引擎的搜索结果中。
机器人排除标准 robot.txt robot exclusion standard的更多相关文章
- Nutch关于robot.txt的处理
在nutch中,默认情况下尊重robot.txt的配置,同时不提供配置项以忽略robot.txt. 以下是其中一个解释.即作为apache的一个开源项目,必须遵循某些规定,同时由于开放了源代码,可以简 ...
- Nutch关于robot.txt的处理 分类: H3_NUTCH 2015-01-28 11:20 472人阅读 评论(0) 收藏
在nutch中,默认情况下尊重robot.txt的配置,同时不提供配置项以忽略robot.txt. 以下是其中一个解释.即作为apache的一个开源项目,必须遵循某些规定,同时由于开放了源代码,可以简 ...
- robot.txt 文件 作用和语法
seo工作者应该不陌生,robots.txt文件是每一个搜索引擎蜘蛛到你的网站之后要寻找和访问的第一个文件,robots.txt是你对搜索引擎制定的一个如何索引你的网站的规则.通过该文件,搜索引擎就可 ...
- 「黑科技」智能消毒防疫机器人 技术方案介绍-disinfection robot
消毒机器人 小新防疫消杀机器人 - 自主导航全方位360°臭氧杀菌消毒机器人,采用臭氧无阻碍.无死角.遍布整个空间除菌:强力涡轮风机,30㎡室内空气循环6次/h,10分钟速效杀菌.除异味.自动转化为氧 ...
- JSTL 标准标签库 (JavaServer Pages Standard Tag library, JSTL)
JSP标准标签库(JavaServer Pages Standard Tag Library,JSTL)是一个定制标签库的集合,用来解决 像遍历Map或集合.条件测试.XML处理,甚至数据 库访问和数 ...
- Robot - 1. robot framework环境搭建
Fom:https://www.cnblogs.com/puresoul/p/3854963.html 一. robot framework环境搭建: 官网:http://robotframework ...
- [Robot Framework] Robot Framework怎么调试?
Robot Framework怎么debug? 在eclipse里面安装一个插件,就可以debug robot framework的project. 插件下载地址: https://github.co ...
- 使用robot合并Robot Framework测试报告
p.p1 { margin: 0; font: 17px ".PingFang SC" } p.p2 { margin: 0; font: 12px "Helvetica ...
- [Robot Framework] Robot Framework用Execute Javascript对XPath表示的元素执行scrollIntoView操作
有些元素需要通过滚动条滚动才能变得可见. 如果这些元素在DOM结构里面存在,可以通过scrollIntoView让其可见,但如果在DOM结构里面不存在那就要通过拖动滚动条让其变的可见. Execute ...
随机推荐
- fcitx五笔的安装[zz]
Fcitx──小企鹅输入法:Free Chinese Input Toy for X是国产软件的精品,是一个以GPL方式发布的.基于XIM的简体中文输入法集合(原为G五笔),包括五笔.五笔拼音.二笔. ...
- 交叉验证(CrossValidation)方法思想简介[zz]
以下简称交叉验证(Cross Validation)为CV.CV是用来验证分类器的性能一种统计分析方法,基本思想是把在某种意义下将原始数据(dataset)进行分组,一部分做为训练集(train se ...
- 安装 Express
首先假定你已经安装了 Node.js,接下来为你的应用创建一个目录,然后进入此目录并将其作为当前工作目录. $ mkdir myapp $ cd myapp 通过 npm init 命令为你的应用创建 ...
- Vue(四):实例化第一个Vue应用
实例化语法 var vm = new Vue({ // 选项 }) Vue 构造器中的内容 <!DOCTYPE html> <html> <head> <me ...
- virtualbox和vagrant卸载脚本在macbook
virtualbox和vagrant在macbook版本的安装文件内,都有一个卸载脚本uninstall.tool vagrant2.1.5卸载脚本: #!/usr/bin/env bash #--- ...
- ASP.NET MVC中切换模板页(不同目录的cshtml文件)
看来以后建立一个父类控制器还是有必要的... using System;using System.Collections.Generic;using System.Linq;using System. ...
- Retina屏的移动设备如何实现真正1px的线
前些日子总被人问起 iOS Retina 屏,设置 1px 边框,实际显示 2px,如何解决?原来一直没在意,源于自己根本不是像素眼……今天仔细瞅了瞅原生实现的边框和CSS设置的边框,确实差距不小…… ...
- [转]Web App 框架选择之百度&腾讯
百度的GMU GMU(Global Mobile UI)是百度前端通用组开发的移动端组件库,GMU是基于zepto的mobile UI组件库,提供webapp.pad端简单易用的UI组件.具有代码体积 ...
- Path-to-PegExp的使用
下载: npm install path-to-regexp --save 引入: var pathToRegexp = require('path-to-regexp') 或者 import pat ...
- 10个超赞的jQuery图片滑块动画
在网站开发过程中,特别是前端开发这块,经常会使用到很多图片滑块动画,也就是一些基于jQuery和HTML5的焦点图插件.本文将为大家收集10个超赞的jQuery图片滑块动画,这些现成的jQuery插件 ...