2010-03-09

robots.txt 文件的非标准扩展

在前面的博客 关于机器人 /robots.txt 文件的常识 中已经介绍了 robots.txt 文件的一些基本用法,这篇文章向大家介绍一些 robots.txt 文件的一些扩展指令。

1、Crawl-delay 指令

一些主要的爬虫支持 Crawl-delay 参数,该参数用于设置对于同一服务连续两个请求之间等待的秒数。
User-agent *
Crawl-delay: 10

2、Allow 指令

一些主要的爬虫支持 Allow 指令,该指令用于排除紧跟其后的 Disallow 指令的设置。当你想排除整个目录的访问但又想让该目录中某些HTML文档能被爬取时这个指令相当有效。虽然按标准执行的第一个匹配的robots.txt模式总是能获得胜利,但谷歌的实施却有所不同:它首先评估所有允许的模式,然后才是所有不允许的模式。 为了和所有的机器人兼容,当只允许排除目录中的某一个文件被抓取时,你应该经 Allow 指令放在 Disallow 指令之前,例如:
Allow: /folder/myfile.html
Disallow: /folder1/

3、Sitemap 指令

一些爬虫支持 Sitemap指令,在一个 robots.txt 文件里允许出现多个 Sitemap
Sitemap: http://www.gstatic.com/s2/sitemaps/profiles-sitemap.xml
Sitemap: http://www.google.com/hostednews/sitemap_index.xml

4、扩展标准

Extended Standard for Robot Exclusion 已经被推出, 该标准推出了一些新的指令, 例如 Visit-timeRequest-rate. 示例:
User-agent: *
Disallow: /downloads/
Request-rate: 1/5         # maximum rate is one page every 5 seconds
Visit-time: 0600-0845     # only visit between 06:00 and 08:45 UTC (GMT)
该机器人排除标准的第一个版本中并没有涉及到任何关于 "*" 号在 Disallow: 语句中的规定。像 Googlebot和Slurp这样的爬虫能识别包含"*"的字符串,然而MSNbot和Teoma以不同的方式解析它。 参考:http://en.wikipedia.org/wiki/Robots_exclusion_standard
blog comments powered by Disqus