robots.txt里一般包含三种属性:
User-Agent: *
Allow: /ads/preferences/
Disallow: /
1. User-Agent
代表本文件对哪些spider有效,当然大多数时候是*,就是不区分任何spider
2.Allow
允许访问,通常用于描述不允许访问的集合中允许访问的子集目录,注意要先写允许访问的子集合再封禁上级目录
3. Disallow
不允许访问,Disallow: /代表啥都不让看,全部不让访问。
4. 多用户声明划分
User-Agent: A
Disallow: /
User-Agent: B
Allow: /
代表对A封禁整个站点,对B全部放开
5. 文件位置的正则表示
/admin/ 代表admin 文件夹下的所有文件。
/tmp 代表 所有以tmp开头的文件夹下的所有文件,这里请注意和/tmp/区分开哦。
/cgi-bin/*.htm 代表/cgi-bin/ 目录下的所有以.htm为后缀的 URL(包含子目录)。
/ad/ct.html 代ad 文件夹下的 ct.html 文件。
.htm$ 代表以.htm为后缀的 URL。
.gif$ 代表网页和 GIF 格式的图片。
/*?* 代表网站中所有包含问号?的网址。
6. sitemap的使用含义
sitemap和htmlmap好像是用于提醒spider本站的高质量高价值的链接位置,优先表示允许访问,即即使被声明过disallow的链接如果出现在sitemap中也是被允许范围的(听说如此,未查证,如有质疑请评论,作为平台方应尽量避免冲突)
附:遗留的疑问(向走过路过的同学们请教)
Q:如果是robots.txt没有提及的位置(既没有被allow也没有被disallow)是允许访问的还是不允许访问的呀
A:默认允许访问。(请教同事)
Q:按照上述逻辑,未提及的agent访问时是不是也是默认访问呢?
Q:按照上述逻辑,默认ALLOW那是不是只有DISALLOW文件位置下的文件才有必要去ALLOW呢?
Q:spider在发现sitemap时会将其全部资源遍历爬取吗?
Q:Diallow空是什么意思
链接http://c.biancheng.net/view/6999.html中写到:
只禁止某个搜索引擎访问,其他搜索引擎允许访问:
User-agent: Baiduspider
Disallow: /
User-agent: *
Disallow:
可见空是不禁止任何位置的