zh-Hans v
en zh tw

Robots.txt 规则测试

用本地 robots 规则批量测试 URL,查看命中行、适用分组和无法判定的结果。

测试已保存的规则

粘贴规则或打开 UTF-8 robots.txt,填写它的根目录 URL,以及 ExampleBot 这类爬虫产品标识,不要填写完整浏览器 User-Agent。每行填写一个完整 HTTP/HTTPS URL 或根相对路径。工具不会访问 robots URL 或目标网站。

每条结果显示允许、禁止或无法判定,并列出获胜规则行和命中规则。不同来源站点不受这份文件约束,因此显示无法判定;无效 URL 也保留为结果行,不会直接从批次中消失。

分组与优先级

使用严格 RFC 9309 风格产品标识:忽略大小写、完整匹配,合并所有命中的具体分组;没有具体匹配时使用通配分组,两者不合并。连续 user-agent 行共享分组,直到开始 allow/disallow 部分。空行、注释、sitemap 和不支持的字段不会拆分分组。

路径区分大小写,从开头比较,包含查询字符串,不含片段。规范化编码后模式最长者获胜,长度包括通配符与结束标记;同优先级时 Allow 优先。精确的根目录 /robots.txt URI 隐式允许访问。

编码与通配规则

* 匹配任意序列,末尾 $ 要求路径与查询字符串在此结束。UTF-8 规则转为百分号编码,十六进制大小写统一,已编码的非保留 ASCII 字符在比较时还原;编码后的保留斜杠不会当成目录分隔符。希望表示字面符号时使用 %2A、%24。

无效和不支持的行会列入诊断,空 allow/disallow 不阻止路径;不执行 crawl-delay 和非标准索引指令。严格解析不复现各搜索引擎对错误 user-agent 和拼错指令的全部容错行为,也不是 Google 解析器的直接副本。

判定能说明什么

允许只表示这份粘贴规则许可访问,不代表页面已收录。Robots 是抓取约定,不是访问控制。本测试不处理线上状态码、重定向、缓存策略、认证或实际部署。

规则最多 500 KiB UTF-8、10,000 行、5,000 条有效规则;目标最多 500 个,每个 URL 编码后最多 8,192 个字符。匹配复杂度超限时停止,不猜测结果。每个 URL 最多展示 100 条命中规则,但判定仍考虑全部适用规则;诊断展示前 200 条并保留总数。CSV 使用 CRLF,并保护可能作为公式执行的单元格。

常见问题

Allow 表示页面已收录吗?

不是,只代表所提供文本中的抓取规则判定,不是索引或线上访问检查。

为什么完整 User-Agent 会报错?

该字段只接收由字母、连字符和下划线组成的爬虫产品标识,严格校验可避免静默匹配到另一种爬虫。

为什么 URL 无法判定?

可能 URL 格式错误,或属于其他来源站点;应核对协议、主机名和端口。

其他语言

参考资料

我们如何确保结果正确

我们使用以下自动化测试验证此工具。下方保留测试用例的原始名称,便于查看实际断言和复现。

验证方法
检查最长路径优先、同优先级 Allow、产品 token 分组和通配组行为,并显示匹配源行。
对比依据
固定 robots.txt 与 URL 的预期匹配结果。
验证范围
不保证所有爬虫遵循相同实现或实际遵守规则。
测试源码与用例(点击文件名查看)
  • robots-tools.test.js
    • Robots matches the most specific path, exposes source line numbers and allows on equal priority
    • Robots exact product-token groups merge case-insensitively and do not inherit wildcard rules

这些测试覆盖列出的样本和边界,不代表所有输入都已证明正确。往返测试和使用同一依赖库的检查,不属于独立交叉验证。