作者:雅虎搜索日志小组
http://www.robotstxt.org/orig.html
近期有很多站长咨询,怎样正确设置"robots.txt"文件。为了解决广大站长朋友们的疑问,我们对《Robots.txt 协议标准》进行了翻译,希望此篇译文能够帮助大家对"robots.txt"文件有更深的了解。
Robots.txt 是存放在站点根目录下的一个纯文本文件。虽然它的设置很简单,但是作用却很强大。它可以指定搜索引擎蜘蛛只抓取指定的内容,或者是禁止搜索引擎蜘蛛抓取网站的部分或全部内容。
下面我们就来详细介绍一下它的使用方法:
Robots.txt 文件应该放在网站根目录下,并且该文件是可以通过互联网进行访问的。
例如:
如果您的网站地址是 http://www.yourdomain.com/
那么,该文件必须能够通过 http://www.yourdomain.com/robots.txt 打开并看到里面的内容。
格式:
User-agent:
用于描述搜索引擎蜘蛛的名字,在" Robots.txt "文件中,如果有多条User-agent记录说明有多个搜索引擎蜘蛛会受到该协议的限制,对该文件来说,至少要有一条User-agent记录。如果该项的值设为*,则该协议对任何搜索引擎蜘蛛均有效,在" Robots.txt "文件中,"User-agent:*"这样的记录只能有一条。
Disallow:
用于描述不希望被访问到的一个URL,这个URL可以是一条完整的路径,也可以是部分的,任何以Disallow开头的URL均不会被Robot访问到。
举例:
例一:"Disallow:/help"
是指/help.html 和/help/index.html都不允许搜索引擎蜘蛛抓取。
例二:"Disallow:/help/"
是指允许搜索引擎蜘蛛抓取/help.html,而不能抓取/help/index.html。
例三:Disallow记录为空
说明该网站的所有页面都允许被搜索引擎抓取,在"/robots.txt"文件中,至少要有一条Disallow记录。如果"/robots.txt"是一个空文件,则对于所有的搜索引擎蜘蛛,该网站都是开放的可以被抓取的。
#:
Robots.txt 协议中的注释符。
举例:
例一:通过"/robots.txt"禁止所有搜索引擎蜘蛛抓取"/bin/cgi/"目录,以及 "/tmp/"目录和 /foo.html 文件,设置方法如下:
User-agent: *
Disallow: /bin/cgi/
Disallow: /tmp/
Disallow: /foo.html
例二:通过"/robots.txt"只允许某个搜索引擎抓取,而禁止其他的搜索引擎抓取。
如:只允许名为"slurp"的搜索引擎蜘蛛抓取,而拒绝其他的搜索引擎蜘蛛抓取 "/cgi/" 目录下的内容,设置方法如下:
User-agent: *
Disallow: /cgi/
User-agent: slurp
Disallow:
例三:禁止任何搜索引擎抓取我的网站,设置方法如下:
User-agent: *
Disallow: /
例四:只禁止某个搜索引擎抓取我的网站
如:只禁止名为“slurp”的搜索引擎蜘蛛抓取,设置方法如下:
User-agent: slurp
Disallow: /
更多,请参考译文出处:http://www.robotstxt.org/wc/norobots.html
为什么要使用robots.txt
我们曾介绍过使用robots.txt来控制搜索引擎抓取页面,同样地,我们也可以在页面文件中使用“noindex”或“nofollow”属性来控制搜索引擎Spider在网站内的爬行,那么,robots.txt对于网站是必需的么?
理论上说,robots.txt只是告诉搜索引擎的Spider网站内哪些内容不允许其索引与收录,它并不是网站的必不可少的组成部分,一个未配置robots.txt的网站只不过对搜索引擎Spider的爬行不作限制而矣。从这个角度看,不设置robots.txt对网站功能没有影响。
但另一方面,恰当地设置robots.txt,可以更好地维护Web 服务器,提高网站的综合性能。从这个角度,网站最好配置robots.txt。
Robots.txt带来的好处
几乎所有的搜索引擎Spider都遵循robots.txt给出的爬行规则,协议规定搜索引擎Spider进入某个网站的入口即是该网站的robots.txt,当然,前提是该网站存在此文件。对于没有配置robots.txt的网站,Spider将会被重定向至404 错误页面,相关研究表明,如果网站采用了自定义的404错误页面,那么Spider将会把其视作robots.txt——虽然其并非一个纯粹的文本文件——这将给Spider索引网站带来很大的困扰,影响搜索引擎对网站页面的收录。
robots.txt可以制止不必要的搜索引擎占用服务器的宝贵带宽,如email retrievers,这类搜索引擎对大多数网站是没有意义的;再如image strippers,对于大多数非图形类网站来说其也没有太大意义,但却耗用大量带宽。
robots.txt可以制止搜索引擎对非公开页面的爬行与索引,如网站的后台程序、管理程序,事实上,对于某些在运行中产生临时页面的网站来说,如果未配置robots.txt,搜索引擎甚至会索引那些临时文件。
对于内容丰富、存在很多页面的网站来说,配置robots.txt的意义更为重大,因为很多时候其会遭遇到搜索引擎Spider给予网站的巨大压力:洪水般的Spider访问,如果不加控制,甚至会影响网站的正常访问。
同样地,如果网站内存在重复内容,使用robots.txt限制部分页面不被搜索引擎索引和收录,可以避免网站受到搜索引擎关于 duplicate content的惩罚,保证网站的排名不受影响。
robots.txt带来的风险及解决
凡事有利必有弊,robots.txt同时也带来了一定的风险:其也给攻击者指明了网站的目录结构和私密数据所在的位置。虽然在Web服务器的安全措施配置得当的前提下这不是一个严重的问题,但毕竟降低了那些不怀好意者的攻击难度。
比如说,如果网站中的私密数据通过www.yourdomain.com/private/index.html 访问,那么,在robots.txt的设置可能如下:
User-agent: *
Disallow: /private/
这样,攻击者只需看一下robots.txt即可知你要隐藏的内容在哪里,在浏览器中输入www.yourdomain.com/private/ 便可访问我们不欲公开的内容。对这种情况,一般采取如下的办法:
- 设置访问权限,对/private/中的内容实施密码保护,这样,攻击者便无从进入。
- 另一种办法是将缺省的目录主文件index.html更名为其他,比如说abc-protect.html,这样,该内容的地址即变成www.yourdomain.com/private/abc-protect.htm,同时,制作一个新的index.html文件,内容大致为“你没有权限访问此页”之类,这样,攻击者因不知实际的文件名而无法访问私密内容。
分享到:
相关推荐
4. **自定义规则**:在 `content` 配置项中,你可以使用标准的 `robots.txt` 协议语法来定义规则,比如 `User-agent`、`Disallow`、`Allow` 等,控制搜索引擎对不同URL的访问权限。 5. **构建过程**:在运行 `vue...
本篇文章将深入探讨如何使用 Go 语言来实现 `robots.txt` 排除协议。我们将主要关注以下几个关键知识点: 1. **robots.txt 文件结构**: `robots.txt` 文件由一系列的 "User-agent" 和 "Disallow" 规则组成。"User...
3. **遵循标准**:遵循robots协议,尊重搜索引擎的抓取规则,不要试图通过设置欺骗或误导爬虫。 4. **测试验证**:生成robots.txt后,可以使用Google的Robots Testing Tool或其他在线工具进行验证,确保其按预期...
本文档详细介绍了Google处理robots.txt文件的方式,包括谷歌robot.txt协议的改变、基本定义、适用性、文件位置、有效范围以及相关示例。 首先,需要明确Robots.txt文件的定义。Robots.txt是一种存放于网站根目录下...
`robots.txt`文件是一种标准的协议文件,用于告诉网络爬虫(如搜索引擎机器人)哪些页面可以抓取、哪些页面不能抓取。这对于网站管理员来说非常重要,因为它可以帮助控制搜索引擎如何索引自己的网站。 #### 一、`...
总结来说,这个Node.js解析器是一个工具,它扩展了标准`robots.txt`协议,支持了通配符匹配,使得开发者能更精确地控制搜索引擎对网站的爬取行为。通过学习和使用这样的工具,你可以更好地管理你的网站,确保它在...
`Robots`协议(也称为爬虫协议、机器人协议)是一种网站与搜索引擎蜘蛛之间进行沟通的方式。它通过一个名为`robots.txt`的纯文本文件来定义网站哪些部分允许被搜索引擎收录,哪些部分禁止收录。这对于网站管理员来说...
**robots协议(也称为Robots Exclusion Protocol或REP)**是一种用于告知网络爬虫(包括搜索引擎机器人)哪些页面可以被抓取、哪些页面应该被排除的标准。通过robots协议,网站管理员可以有效地控制搜索引擎对其网站...
`robots.txt`文件是一种标准的协议文件,用于告诉搜索引擎哪些页面可以爬取,哪些页面不能爬取。这个文件位于网站根目录下,对于任何域名来说,只要在其后面添加`/robots.txt`即可访问该文件。例如,对于域名`...
机器人排除协议(REP)是一种标准,使网站所有者可以通过具有特定语法的简单文本文件来控制自动客户端(即搜寻器)可以访问哪些URL。 它是众所周知的互联网的基本组成部分之一,也是使搜索引擎能够运行的基础。 ...
4. robots.txt协议:文档提到了robots.txt文件以及爬虫对它的处理方式。robots.txt是位于网站根目录下的一个文件,用于告知爬虫哪些页面可以抓取,哪些不可以。代码中涉及到了解析robots.txt文件,以及基于其中定义...
1. **Robots协议尊重**:通过`isRobotAllowed()`方法,爬虫会遵守每个网站的`robots.txt`文件中的规定,不会访问被禁止的页面。 2. **URL验证与标准化**:使用`verifyUrl()`和`removeWwwFromUrl()`方法确保URL的有效...
1. **兼容性**:严格遵循robots.txt协议标准,保证与多种网站的兼容性。 2. **易用性**:提供简洁的API,方便开发者快速集成到自己的爬虫项目中。 3. **性能优化**:高效地解析和处理robots.txt文件,减少资源消耗。...
最常见的网络爬虫协议是Robots协议,也称为“爬虫协议”或“网络爬虫排除标准”。Robots协议规定了网站管理者可以通过robots.txt文件来表达是否希望爬虫程序自动获取网站信息的意愿。 Robots协议的作用主要体现在两...
而“Robots.txt 协议”题目则更侧重于字符串处理、正则表达式匹配和对网络协议的理解。在互联网上,网站管理员可以通过robots.txt文件来告诉搜索引擎爬虫哪些页面是可以抓取的,哪些是禁止抓取的。对于这个问题,...
- 若不遵守robots.txt协议,可能引发的法律问题和争议案例。 4. 爬虫的分类 - 通用爬虫:从一个起始网址开始,抓取全站所有信息,适用于大型门户网站、搜索引擎等。 - 聚焦爬虫:只抓取定义好的特定内容,适用于...
Robots协议,亦称为网络爬虫排除标准,允许网站管理员在网站的根目录下创建一个名为robots.txt的文件。通过这一文件,网站管理员可以声明哪些部分的网页内容允许爬虫抓取,哪些则禁止。Robots协议虽然不具备法律强制...
这是一个互联网上的标准,网站可以通过`robots.txt`文件告知搜索引擎或其他网络爬虫哪些页面可以抓取,哪些禁止抓取。通常,爬虫在开始爬取前会先查看该文件,以避免侵犯网站的隐私和版权。 在使用`urllib.request`...
不同的网站会通过robots.txt文件声明哪些内容允许或不允许被爬虫访问。尊重网站声明,合理控制爬虫的访问频率,避免对服务器造成不必要的负担,是作为一个负责任的爬虫开发者所应遵循的准则。 最后,爬虫技术的学习...