服务器日志每天都在增长,其中不少请求会自称是 Googlebot、Bingbot 或百度蜘蛛。但 User-Agent 字符串是可以随手改写的,仅凭一行 UA 就判断“搜索引擎来过”,很容易得出错误结论。对站点运营来说,先分清真假爬虫,再决定要不要调整抓取策略、要不要限流,顺序才不会颠倒。
为什么身份核对值得单独做一遍
把伪装请求当成真实搜索蜘蛛,通常会带来两类问题:一是误判抓取量,以为新页面已经被发现,其实只是某个脚本在扫站;二是为了“照顾”这些请求而放宽限制,让真正需要防范的采集行为混了进来。反过来,如果因为一次异常访问就把整个 IP 段封掉,也可能误伤真实蜘蛛,让正常抓取中断。
三个可以交叉验证的核对手段
- 反向 DNS 解析:对来源 IP 做一次反向解析,看域名是否落在搜索引擎公布的官方域内,再用正向解析回查一次,确认两个结果能对上。只做单向解析,容易被伪造的 PTR 记录骗过。
- 官方 IP 段比对:主流搜索引擎都会公开自己的爬虫 IP 列表,把日志里的 IP 与列表核对是最直接的一步。列表会更新,建议定期重新拉取。
- 行为特征观察:真实蜘蛛通常按一定节奏抓取,会请求 robots.txt,会跟随页面里的链接和静态资源;伪装请求常常表现为短时间内集中扫某个目录、只抓 HTML 不拿图片样式,或者对同一路径反复请求。
日志里值得重点看的字段
- IP 与 UA 是否匹配:同一个 IP 频繁更换 UA,或者 UA 写着某搜索引擎但 IP 段完全对不上,都值得标记。
- 请求路径分布:真实蜘蛛会沿站内链接逐步扩展,伪装请求更倾向于遍历式扫描,路径规律性很强。
- 响应码与频率:大量 404、403 集中出现,或者每秒请求数明显高于正常抓取节奏,通常不是搜索蜘蛛的行为。
- 是否读取 robots.txt:这是最容易观察的一个信号,不少采集脚本会直接跳过这一步。
核对之后怎么处理
确认真实蜘蛛的 IP,可以放进白名单,避免被限流规则误伤;确认是伪装请求的,按普通访客对待即可,必要时在服务器或 WAF 层面做频率限制、封禁高频 IP,而不是在 robots.txt 里写规则——robots.txt 只对守规矩的爬虫有效。
如果发现某类请求量突然上涨,先看它抓的是哪些页面。若集中在内页、搜索结果页或参数组合页,说明站内可能有大量低价值 URL 被暴露出来,这时更该处理的是页面本身的可抓取范围,而不是简单封 IP。
抓取量和收录没有必然关系。用非正常手段制造访问量,并不会让页面内容变得更有价值,反而可能带来不必要的风险。
把核对流程固定成周期动作
- 每月导出一次日志样本,按 IP 聚合请求数,取前 20 名做身份核对。
- 把核对结果记录下来,标注哪些是已验证的真实蜘蛛 IP。
- 对比上个月的名单,看新增了哪些来源、有没有异常的集中扫描。
- 根据结果调整限流规则和服务器配置,而不是一次设置后长期不管。
这件事做起来不复杂,却能让后面很多判断更靠谱:抓取是否正常、要不要调整栏目、服务器压力来自哪里,都需要先知道访问者到底是谁。