共计 1760 个字符,预计需要花费 5 分钟才能阅读完成。
robots.txt 是一个蕴含网站索引参数的文本文件,供搜索引擎的机器人应用。
Yandex 反对具备高级性能的 Robots Exclusion 协定。
当抓取一个网站时,Yandex 机器人会加载 robots.txt 文件。如果对该文件的最新申请显示某个网站页面或局部被禁止,机器人就不会索引它们。
Yandex robots.txt 文件的要求
Yandex 机器人能够正确处理 robots.txt,然而须要满足以下要求:
- 文件大小不超过 500KB。
- 它是一个名为 “robots “ 的 TXT 文件,robots.txt。
- 该文件位于网站的根目录中。
- 该文件可供机器人应用:托管网站的服务器以 HTTP 代码回应,状态为 200 OK。查看服务器的响应
如果文件不符合要求,该网站被认为是凋谢索引的,也就是 Yandex 搜索引擎能够任意拜访网页内容。
Yandex 反对从位于一个网站的 robots.txt 文件重定向到位于另一个网站的文件。在这种状况下,指标文件中的指令被思考在内。这种重定向在挪动网站时可能很有用。
Yandex 拜访 robots.txt 的一些规定
在 robots.txt 文件中,机器人会查看以 User-agent: 结尾的记录,并寻找字符 Yandex(大小写不重要)或 *。如果 User-agent: Yandex
字符串被检测到,User-agent: *
字符串会被疏忽。如果 User-agent: Yandex 和 User-agent: *
字符串未被发现,机器人将被视为具备有限的拜访权限。
你能够为 Yandex 机器人输出独自的指令。
例如上面的一些示例:
User-agent: YandexBot # 用于索引爬虫的写法
Disallow: /*id=
User-agent: Yandex # 将会对所有 YandexBot 起效
Disallow: /*sid= # 除了次要的索引机器人
User-agent: * # 对 YandexBot 不会起作用
Disallow: /cgi-bin
依据规范,你应该在每个 User-agent 指令前插入一个空行。#字符指定了正文。在这个字符之后的所有内容,直到第一个换行,都将被疏忽。
robots.txt Disallow 与 Allow 指令
Disallow 指令,应用此指令禁止索引站点局部或单个页面。例子:
- 蕴含秘密数据的页面。
- 带有站点搜寻后果的页面。
- 网站流量统计。
- 反复页面。
- 各种日志。
- 数据库服务页面。
上面是 Disallow 指令的示例:
User-agent: Yandex
Disallow: / # 禁止对整个网站进行抓取
User-agent: Yandex
Disallow: /catalogue # 禁止抓取以 /catalogue 结尾的页面。User-agent: Yandex
Disallow: /page? # 禁止抓取含有参数的 URL 的页面
robots.txt Allow 指令
该指令容许索引站点局部或单个页面。上面是示例:
User-agent: Yandex
Allow: /cgi-bin
Disallow: /
# 禁止索引任何页面,除了以 '/cgi-bin' 结尾的网页
User-agent: Yandex
Allow: /file.xml
# 容许索引 file.xml 文件
robots.txt 组合指令
相应的用户代理块中的 Allow 和 Disallow 指令会依据 URL 前缀长度(从最短到最长)进行排序,并按程序利用。如果有几个指令与一个特定的网站页面相匹配,机器人会抉择排序列表中的最初一个指令。这样,robots.txt 文件中指令的程序就不会影响机器人应用它们的形式。
# robots.txt 文件示例:
User-agent: Yandex
Allow: /
Allow: /catalog/auto
Disallow: /catalog
User-agent: Yandex
Allow: /
Disallow: /catalog
Allow: /catalog/auto
# 禁止索引以 '/catalog' 结尾的页面
# 然而能够索引以 '/catalog/auto' 结尾的页面地址
总结
以上是对于 Yandex 爬虫对于 robots.txt 的一些规定写法,能够通过指定配置,容许或禁止 Yandex 爬虫抓取或禁止抓取页面。
参考资料
- Disallow and Allow directives
- The User-agent directive
- Using robots.txt