搜索引擎爬虫日志里最该核对的字段是:时间戳、客户端IP、请求方法、请求URL、HTTP状态码、响应大小、User-Agent、Referer,以及反向解析或IP归属验证结果。验收时不要只看“有没有爬虫来过”,而要按观察、判断、处理、复查的顺序,确认这些字段能否支撑三个结论:来的是不是目标搜索引擎爬虫、它抓了哪些URL、抓取结果是否正常。缺少其中任何一类字段,日志都很难作为可交接的验收依据。
时间戳字段决定你能否把日志和服务端变更、发布记录、告警时间对齐。核对时重点看三件事:格式是否统一、时区是否标注、是否包含秒级精度。
10/Oct/2024:13:55:36 +0800 和 Unix 时间戳,否则交接后容易算错时段。+0800 或 UTC 标记,不要只留一个裸时间。判断“某次抓取是否发生在改版之后”完全依赖这一点。判断结果:如果时间字段缺失或时区不明,先不要继续做抓取频次分析,应要求日志提供方补齐或说明,否则后续所有结论都不可靠。
User-Agent 字段是爬虫自报身份,可以伪造,所以它只能作为第一层筛选,不能单独作为结论。正确的做法是把 User-Agent 与客户端IP、反向解析结果放在一起判断。
判断结果分三种:User-Agent 与IP都匹配,可认定为真实爬虫;只有 User-Agent 匹配而IP不匹配,可能是伪造,需要进一步查证;两者都不匹配,则不属于本次核对范围。这里要区分“可能原因”和“已经定位的原因”——IP不匹配只是可疑信号,不等于已经确认伪装,必须结合反向解析和访问行为再下结论。
这三个字段组合起来,才能回答“爬虫抓到了什么”。只看状态码会漏掉内容层的问题。
200 表示正常返回;301/302 要看跳转目标是否合理;404 说明存在死链或已删除页面;5xx 说明服务端在抓取时出错。大量 5xx 通常比大量 404 更值得优先处理。200,响应体只有几百字节可能意味着返回了空页或错误页模板。把响应大小与正常页面的典型值对比,能发现这类问题。处理建议:先按状态码分组统计,再对异常组抽样看URL和响应大小。复查时对比处理前后的同一组数据,确认异常比例是否下降。注意 robots.txt 的抓取限制不等于可靠的索引移除,日志里看到某URL被限制抓取,也不能推断它一定已从索引中消失。
Referer 字段能帮你判断爬虫是从站点地图、内链还是外部链接进入的。它不是所有请求都有,缺失属于正常现象,但成批出现同一来源时,可以作为抓取路径的参考。
抓取频次不是单个字段,而是按时间戳和IP聚合后的结果。核对时看两点:单位时间内同一IP的请求量是否异常偏高;是否集中在少数URL上反复抓取。前者可能给服务器带来压力,后者可能说明存在参数组合或重定向循环。
判断结果:频次异常且URL集中,优先检查是否存在无限参数、会话ID或软404;频次正常但覆盖URL很少,则要回到站点地图和内链结构上找原因。站点地图不保证收录,它只影响爬虫能否发现URL,不能替代抓取和索引结果。
把上面几项落到可执行的检查动作上,交接时逐条确认:
4xx 和 5xx 占比最高的URL。200 请求抽样打开,确认返回内容是否正常。适用条件:这套清单适用于自有服务器或CDN日志可导出的场景。如果日志由第三方托管且字段受限,应先确认能拿到哪些字段,再调整核对范围,不要用不完整字段强行下结论。HTTPS 不保证安全无漏洞或排名,它只影响传输层,与日志字段核对是两件事。
下一步:拿这份清单对照你手上的日志样例,先确认字段是否齐全,再决定是否需要向日志提供方补充采集项。字段不齐时,优先补齐时间戳、IP、状态码和响应大小这四项,它们对验收结论的影响最大。