`
rustyapple
  • 浏览: 3514 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

《Robots.txt 协议标准》介绍

阅读更多

《Robots.txt 协议标准》介绍

作者:雅虎搜索日志小组

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文件,内容大致为“你没有权限访问此页”之类,这样,攻击者因不知实际的文件名而无法访问私密内容。
分享到:
评论

相关推荐

    grobotstxt:grobotstxt是Google robots.txt解析器和匹配器库的本地Go端口

    机器人排除协议(REP)是一种标准,使网站所有者可以通过具有特定语法的简单文本文件来控制自动客户端(即搜寻器)可以访问哪些URL。 它是众所周知的互联网的基本组成部分之一,也是使搜索引擎能够运行的基础。 ...

    Python爬虫基本使用 requests安装 HTTP HTTPS 抓包

    用简单直接的txt格式文本方式告诉对应的爬虫被允许的权限,也就是说robots.txt是搜索引擎中访问网站的时候要查看的第一个文件 以Allow开头的URL地址 允许某爬虫引擎访问 以Disallow开头的URL地址 不允许...

    爬取《es6标准入门》、自动推文到掘金、站点性能分析;高级爬虫、自动化UI测试、性能分析;.zip

    遵守规则: 为避免对网站造成过大负担或触发反爬虫机制,爬虫需要遵守网站的robots.txt协议,限制访问频率和深度,并模拟人类访问行为,如设置User-Agent。 反爬虫应对: 由于爬虫的存在,一些网站采取了反爬虫措施...

    一个超详细的网站SEO分析专项方案.doc

    9. Robots.txt蜘蛛协议分析:了解文件是否存在、正确性检验、蜘蛛权限检验、是否泄露后台地址等信息。 10. 404错误页面分析:了解404页面正确性、404页面内容策划、是否存在302跳转、是否在Robots.txt文件中进行屏蔽...

    wget是一个从网络上自动下载文件的自由工具

    在递归下载的时候,wget遵循Robot Exclusion标准(/robots.txt). wget可以在下载的同时,将链接转换成指向本地文件,以方便离线浏览。 wget非常稳定,它在带宽很窄的情况下和不稳定网络中有很强的适应性.如果是由于...

    聚惠星商城 DTS-SHOP.zip

    遵守规则: 为避免对网站造成过大负担或触发反爬虫机制,爬虫需要遵守网站的robots.txt协议,限制访问频率和深度,并模拟人类访问行为,如设置User-Agent。 反爬虫应对: 由于爬虫的存在,一些网站采取了反爬虫措施...

    jquery-oembed-all:改进了jquery-oembed项目的fork

    这个项目是DEAD 。... 但是,某些网站(例如bandcamp)由于其robots.txt文件而使YQL无法正常工作。 随着时间的流逝,我将删除一些经过硬编码的提供程序,而是使用OGP来提供标准的嵌入布局并减小文件大小。 该

    Sitemap Explorer-crx插件

    扩展功能:-自动检测在您开发,管理或分析的任何网站的robots.txt文件中声明的链接。 -以易于阅读的形式显示文件的XML内容。 -验证XML语法(支持标准XML和Atom协议)。 -一键式将URL从XML导出到本地CSV文件。 -包含...

    搜索引擎优化高级编程(PHP版)

    5.2.2 robots.txt模式排除 5.3 常见重复页面的解决方案 5.3.1 打印友好的页面 5.3.2 导航链接和眉毛导航 5.3.3 相似页面 5.3.4 具有重复Meta标签或Title值的页面 5.3.5 URL规范化 5.3.6 基于URL的会话ID 5.3.7 其他...

    SEO编程PHP中文版

    5.2.2 robots.txt模式排除 5.3 常见重复页面的解决方案 5.3.1 打印友好的页面 5.3.2 导航链接和眉毛导航 5.3.3 相似页面 5.3.4 具有重复Meta标签或Title值的页面 5.3.5 URL规范化 5.3.6 基于URL的会话ID ...

    hadoop中文文档

    例如:查询、请求一个DNS,或者是 请求、分析一个robots.txt文件。--这些都是在进行下一步之前所要做的事情。 1.2 Pre selector :预选择器。查看爬虫的域,看是否这个URL已经被处理(捉取)过了。如果被捉取过了,...

    wget命令用法

    wget 可以跟踪HTML页面上的链接依次下载来创建远程服务器的本地版本 完全重建原始站点的目录结构 这又常被称作”递归下载” 在递归下载的时候 wget 遵循Robot Exclusion标准 robots txt wget可以在下载的同时 将链接...

Global site tag (gtag.js) - Google Analytics