做蜘蛛池和站点运营,看日志是日常。很多人会发现日志里 Baiduspider、Googlebot、bingbot 的请求量很大,但如果把这些请求一股脑当成搜索蜘蛛,很容易得出错误结论:以为某个入口页被大量抓取,实际上可能只是别人用脚本伪造 UA 在扫你的站。
为什么会有假蜘蛛
伪造 User-Agent 的成本极低,一行请求头就能改。常见动机有几类:
- 采集脚本伪装成搜索蜘蛛,绕过一些站点的访问限制;
- 安全扫描工具批量探测路径和漏洞;
- 同行想看你的入口页结构、链接列表和目标 URL 分布;
- 部分统计或监控工具没有严格校验 UA,造成误判。
这些请求的 UA 看着像真的,但行为往往和真蜘蛛差别很大。
几种可操作的判断方法
反向 DNS 解析
主流搜索引擎的蜘蛛 IP 通常能反解出对应域名。做法是用日志里的 IP 做反向解析,看结果域名是否属于该搜索引擎,再把解析出来的域名正向解析一次,确认能回到同一个 IP。两次都对得上,可信度才比较高。
核对官方 IP 段
Google、Bing 等提供了官方蜘蛛 IP 列表,可以定期拉取比对。百度没有公开完整列表,一般通过反解域名后缀来判断。纯靠 UA 判断是最不可靠的方式。
看抓取行为
- 真蜘蛛一般按 robots.txt 和站点结构走,请求路径相对合理;假蜘蛛常直接扫 /admin、/.env、备份文件等。
- 真蜘蛛请求间隔有一定节奏,不会在同一秒并发几百个请求。
- 真蜘蛛的请求多数不带 Referer,也很少带着浏览器 Cookie 和完整的浏览器指纹。
- 真蜘蛛抓取后会留下比较稳定的记录,比如同一 IP 段反复出现在同一批 URL 上。
假蜘蛛给入口页带来的实际影响
把它当成噪音就好,但它有两个副作用:一是日志被污染,你按“蜘蛛抓取量”评估入口页效果时数字会虚高;二是假蜘蛛并发很高时,可能占满入口页的连接数,真蜘蛛来抓的时候响应变慢甚至超时,反而影响正常的 URL 发现。
判断入口页是否真的被搜索蜘蛛发现,最好把“抓取 IP 属于真蜘蛛”和“目标页后续出现抓取记录”两条一起看,只看 UA 很容易误判。
落地建议
- 先按 IP 给日志归组,而不是按 UA 归组。
- 对高频 IP 做反向解析,逐步建立自己的白名单和黑名单。
- 在服务器层面对可疑 IP 做限速,不要整段封禁,避免误伤。
- 定期更新搜索引擎官方 IP 列表,用云服务器做入口页时尤其要留意。
- 评估入口页效果时,用真蜘蛛的抓取数据去和后续目标页的抓取日志做对照。
小结
UA 只是请求方自己写的一行字,不能作为判断依据。做蜘蛛池和站点运营,日志分析的第一步应该是把“自称蜘蛛”和“确实是蜘蛛”分开,再去讨论入口页有没有被有效抓取、目标 URL 有没有被发现。这个前提做对了,后面的排查顺序才有意义。