日志里出现大量“自称蜘蛛”的请求时,很多人的第一反应是在 robots.txt 或服务器策略里封掉。但封错的代价不小:真正的搜索蜘蛛被挡在门外,URL 发现和更新都会受影响;而放行了伪造来源,又会把无效请求算进抓取数据,导致对抓取健康状况的误判。核对身份,是后续所有判断的前提。
为什么要先核对身份,再谈抓取
抓取日志、带宽占用、状态码分布这些指标,都建立在“这些请求确实来自搜索蜘蛛”的假设上。假设不成立,后面的分析全部失真。常见场景有两类:一是第三方采集脚本伪装 UA,把服务器压力算到搜索引擎头上;二是真实搜索蜘蛛被误判为恶意流量而拦截。两者都会让运营决策跑偏。
三层核对:UA、反向 DNS、IP 归属
第一层:User-Agent
UA 是最容易伪造的一层,只能当作筛选线索,不能作为结论。核对时注意大小写、版本号格式是否完整,以及是否缺少常见的伴随字段。看到 UA 里写着常见蜘蛛标识,先记下来,进入下一层验证。
第二层:反向 DNS 正查与反查
主流搜索引擎的官方文档通常会给出验证方式:先对来访 IP 做反向解析得到域名,再对该域名做正向解析,确认能回到同一个 IP。两步都通过,才是比较可靠的证据。只做反向解析就下结论,容易被伪造的 PTR 记录骗过。
第三层:IP 段与归属
把通过验证的 IP 与官方公布的 IP 段列表比对。官方会不定期更新段列表,定期同步一次比较省事。归属信息可以看 ASN 和注册组织,但不同查询工具的结果可能不一致,作为辅助参考即可。
行为侧信号怎么用
身份核对之后,再看行为是否符合预期。真实蜘蛛一般遵循 robots.txt,抓取节奏相对平稳,不会在几秒内请求几百个动态参数页面。行为异常不一定代表伪造,也可能是站点把蜘蛛引向了无限筛选参数,这时先回到抓取路径和内链结构上找原因。
- 请求频率是否在短时间内异常集中
- 是否大量请求 robots.txt 中已禁止的路径
- 是否只抓取少数几个模板,且集中在参数页
- 是否总在请求站内搜索、排序、会话类 URL
确认是伪造来源后的处理顺序
- 先在日志里给这批请求打标签,观察它占比多大、集中在哪些路径。
- 检查 robots.txt 与 WAF 规则,确认没有误伤真实蜘蛛的 IP 段或 UA。
- 优先用限速或路径级限制,不要一次性封整个 IP 段,避免误伤共用出口的真实流量。
- 处理后再看一周日志,确认目标路径请求量回落,同时真实蜘蛛的抓取量没有减少。
常态化核对清单
- 每月拉一次官方 IP 段列表,与本地白名单比对
- 抽查若干条请求,完整走一遍反向 DNS 正反查
- 把“疑似伪造”和“确认真实”分开记录,不要混在一张表里
- 站点规模变化、上新模板、调整 CDN 之后,重新核对一次白名单
身份核对的目的不是封掉更多请求,而是让抓取数据可信。数据可信,后面关于 URL 发现、抓取覆盖率的判断才有意义。