robots.txt 的 User-agent 分组是怎么匹配的
robots.txt 测试器会先把粘贴进来的文件拆成若干组。每个 User-agent 行及其后续的 Allow、Disallow 等行构成一组。当你输入一个抓取器时,工具按 RFC 9309 的优先级选择分组:先找完全相同的 token;找不到时,如果 token 带连字符,就回退到父 token,例如 Googlebot-Image 回退到 Googlebot;再找不到,才使用 * 组。
需要特别注意:一旦找到了具体的抓取器组,就不会再叠加 * 组中的规则。也就是说,具体组完全替代通配组,而不是把两边的规则合并。比如文件中 * 组写了 Disallow: /private/,但 Baiduspider 组只写了 Disallow: /tmp/,那么测试器对 Baiduspider 只会应用 /tmp/ 规则,/private/ 不会被阻止。反过来,如果文件中根本没有 Baiduspider 组,测试器才会读取 * 组。
文件里出现多个同名 User-agent 组时,工具会把这些同名组合并处理,最终看到的规则来自所有同一抓取器分组。测试结果中会显示实际应用的分组,方便你确认到底是哪一组在起作用。