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 爬虫抓取或禁止抓取页面。