抓取日志里与 robots.txt 有关的字段,核心是核对三类信息:请求是否真的读取了 robots.txt、读取后返回了什么状态、以及后续抓取是否按规则被限制。对多数日志来说,至少要看请求路径、状态码、User-Agent、响应大小、请求时间和来源 IP;如果日志由 CDN 或反向代理输出,还要确认它是否记录了回源状态和缓存命中。缺了其中任何一项,都可能导致把“没抓”误判成“被 robots.txt 拦住”。
同一份“抓取日志”可能来自源站 Web 服务器、CDN 边缘节点或搜索引擎抓取统计报告,字段含义并不相同。源站日志通常能看到完整的请求路径和状态码,但未必能看到搜索引擎的抓取频次;CDN 日志能看到边缘命中,却可能把回源请求合并或采样,导致 robots.txt 的读取记录不完整。多人协作时,第一步不是直接查字段,而是先确认日志来源和采样方式,否则后续核对会反复返工。
判断方法:在日志中搜索 /robots.txt,看它是否独立成行。如果整份日志里该路径出现次数极少甚至为零,先怀疑日志层级或过滤规则,而不是立刻断定抓取方忽略了 robots.txt。
/robots.txt,以及是否带查询参数或大小写变体。带参数的路径可能命中不同缓存键,不能与标准路径合并统计。如果日志里还有 Referer、缓存状态、回源标记,也应一并记录,它们能解释“为什么边缘有请求但源站看不到”。
假设某天发现某目录的抓取量下降,可以先做一次字段对比,而不是直接改 robots.txt。取下降前和下降后各一段日志,按 User-Agent 分组,统计以下三项:robots.txt 的请求次数、robots.txt 的状态码分布、目标目录的请求次数。如果 robots.txt 请求次数没有变化且状态码稳定为 200,那么抓取量下降更可能来自其它原因,例如页面状态码变化、内链减少或抓取预算重新分配;如果 robots.txt 状态码从 200 变成 5xx,则要优先排查服务端可用性,因为部分抓取方在无法获取规则时会采取保守策略。
这里要区分“可能原因”和“已经定位的原因”。日志只能证明请求与响应的对应关系,不能单独证明抓取方内部如何解读规则。要确认限制是否生效,还需要结合目标 URL 的实际抓取记录和抓取方提供的验证方式分别核查。
为了让接手的人不用重新推断,交付记录里应写清楚:日志来源与时间范围、过滤条件、按 UA 分组的统计结果、robots.txt 的状态码与最终地址、以及结论所依赖的具体行。不要只写“robots.txt 正常”,而要写“某 UA 在某个时间段内请求 /robots.txt 共多少次,状态码均为 200,响应大小正常”。这样后续核对时可以直接复现,而不是重新猜字段。
下一步:从当前日志中导出最近一段时间的 /robots.txt 请求记录,按 User-Agent 和状态码分组,先确认读取行为本身是否正常,再决定是否检查规则内容或抓取限制。