测试环境与线上对照爬虫控制,核心不是比较两份 robots.txt 文本,而是用同一组抓取请求分别打到两个环境,记录状态码、响应头和正文,再以线上实际返回为准判断规则是否生效。测试环境通常有额外的访问限制,因此它的结果只能用来验证配置语法和匹配逻辑,不能直接推断线上行为。要定位问题,先明确交付物:一份可复现的请求清单、两个环境的原始响应、差异对照表,以及每条差异对应的责任人和验收标准。
对照的终点不是“看起来一样”,而是能回答三个问题:哪些 URL 在测试环境被允许、在线上被拒绝;哪些规则只在一侧匹配;差异是配置本身造成的,还是环境差异造成的。建议交付一份表格,每行一个测试 URL,列包含:请求路径、测试环境状态码、线上状态码、测试环境关键响应头、线上关键响应头、判定结论。
判定结论只写三类:一致且符合预期、一致但不符合预期、两侧不一致。第三类才需要进入根因排查,前两类分别对应验收通过和规则设计问题。
在收集证据前,先列出可能造成差异的因素,避免把环境问题误判为规则问题。
这些是可能原因,不是已定位的原因。必须靠请求记录逐条排除。
准备一份固定 URL 清单,覆盖四类路径:明确允许的、明确禁止的、未被任何规则覆盖的、以及带参数的动态路径。每类至少两条。
短例子(假设场景):清单里有一条 /private/。测试环境返回 200,线上返回 403。先看线上响应头是否来自 WAF;若是,则这条差异与爬虫控制规则无关。若响应头显示来自源站,再检查线上规则文件中 Disallow: /private/ 是否位于允许规则之后被覆盖。
验收要可判定,避免“基本一致”这类描述。建议采用以下标准:
责任划分上,规则文件的生成与发布由配置管理方负责,中间层拦截策略由运维或安全方负责,对照表的填写与结论由执行测试的一方负责。出现不一致时,先由执行方给出差异行和复测记录,再交由对应责任方确认,避免在未定位前直接改规则。
第一,把 robots.txt 的抓取限制当成索引移除手段。它只表达抓取意愿,不保证页面从搜索结果中消失,对照时不要用它推断索引状态。第二,把站点地图当成收录保证。站点地图只提供发现线索,两侧都存在站点地图也不代表收录行为一致。第三,把 HTTPS 当成安全或排名保证。协议差异可能影响重定向链路,但不能据此判断爬虫控制规则是否正确。
不同搜索引擎对同一规则的支持程度需要分别核查,对照结论也应注明是针对哪个抓取方得出的。
下一步:把上面四类路径的清单补全到每个规则分支至少两条,然后按步骤一和步骤二跑一遍,先拿到两侧原始响应,再决定是否需要改动规则。