RobotsTXT
关于 /robots.txt
简介
网站所有者通过 /robots.txt
向网络爬虫解释说明他的网站; 这被称作 机器人排除协议
.
工作原理如下: 一个网络爬虫想访问该网站的 URL http://www.example.com/welcome.html
,
在它访问 URL 之前, 它先检查 http://www.example.com/robots.txt
, 看到:
User-agent: *
Disallow: /
User-agent: *
指这个内容对所有类型爬虫有效. Disallow: /
指爬虫不该访问该网站的任意页面.
两点重要的注意事项:
-
爬虫可以忽略你的
/robots.txt
. 尤其是扫描网站安全漏洞和收集邮箱的恶意爬虫, 要特别注意. -
/robots.txt
是一个公开的文件, 任何人都能知道你网站的哪个部分不想让网络爬虫访问.
所以, 不要试图通过 /robots.txt
来隐藏信息.
详细介绍
/robots.txt
是一个事实标准, 它不属于任何标准制定机构. 这有两个历史描述文件:
以及两个补充资源:
https://www.w3.org/TR/html4/appendix/notes.html#h-B.4.1.1
https://en.wikipedia.org/wiki/Robots_exclusion_standard
放在哪
简单回答是: 网站的根目录.
robots.txt
是全小写的, 不能是 Robots.TXT
.
规则怎么写
-
每个规则一行
-
同一组规则之间不能有空行
-
空行用来分割不同组的规则
-
不支持通配符和正则表达式 (
User-agent: *
是特殊标注) -
没有禁止的内容被视为可以访问
例子:
禁止所有爬虫访问整个网站:
User-agent: *
Disallow: /
允许所有爬虫访问整个网站:
User-agent: *
Disallow:
或 留空该文件或者不放置该文件.
禁止所有爬虫访问网站的某些部分:
User-agent: *
Disallow: /cgi-bin/
Disallow: /tmp/
Disallow: /junk/
禁止某个爬虫访问:
User-agent: BadBot
Disallow: /
只允许某爬虫访问:
User-agent: Google
Disallow:
User-agent: *
Disallow: /
排除一个文件以外的其他文件:
这当前有点尴尬, 因为没有 “允许” 字段. 简单的方法是将所有禁止的文件放入一个单独的目录, 比如“stuff”, 并将那个允许访问的文件放在该目录的上一层:
User-agent: *
Disallow: /~joe/stuff/
或者明确禁止每个文件:
User-agent: *
Disallow: /~joe/junk.html
Disallow: /~joe/foo.html
Disallow: /~joe/bar.html