乐趣区

关于爬虫:yandex-robots-txt

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
退出移动版