做蜘蛛池和站点运营,看日誌是日常。很多人會發現日誌里 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 有没有被發現。這個前提做對了,後面的排查顺序才有意义。