為什么入口頁的“蜘蛛訪問”经常是假的
翻日誌时,很多人只要看到 User-Agent 里带 Googlebot、Baiduspider,就记一次抓取。但 UA 是請求头里最容易改寫的字段,一個采集脚本、一個监控探针都能寫上同样的字符串。把伪蜘蛛当真蜘蛛,會带来两個错誤判断:一是以為抓取量還不错,二是按這個量去調整入口頁的數量和更新节奏,方向從一開始就偏了。所以在谈收錄和抓取量之前,先把来訪者身份分清楚。
UA 只能当线索,不能当證據
UA 的價值在于分流:先按 UA 把日誌切成几组,再對可疑的那一组做進一步校驗。常见的伪造特征是:
- UA 寫得過于简短,缺版本号與平台标记,例如只有一個“Googlebot”;
- UA 與請求内容矛盾,声称是移動端蜘蛛,却只請求桌面版路径;
- 同一個 IP 在几分钟内轮換多個搜尋引擎的 UA;
- 拼寫错誤,或使用早已停用的标识。
這些只能用作篩選條件,不能單獨下结论,因為真蜘蛛的 UA 也會随版本更新變化。
IP 反查:普通手段里最靠谱的一步
反向解析與正向解析要成對做
拿到可疑 IP 後先做反向解析(PTR),看域名是否落在搜尋引擎自己的域下;再對得到的域名做一次正向解析,確認能解析回同一個 IP。只有正反一致,基本可以認定為真。只看 PTR 容易被伪造的记錄骗過去。
對照官方公布的 IP 段
主流搜尋引擎會公布抓取 IP 段,可以定期拉取並本地比對,用脚本匹配比手工查询現實得多。對不上的先归入“待確認”,不要急着当伪蜘蛛删掉——CDN 回源、代理轉發都可能让源站看到的 IP 是中間节点的地址。
行為特征:真蜘蛛的爬行习惯
- 抓取资源類型:通常先抓 HTML,是否加载 CSS、JS 取决于渲染能力,但不會像浏览器那样把全部资源拉一遍。
- 並發與节奏:單 IP 並發一般不高,速度受站点响應與配額影响。
- 參數與 Cookie:很少带业務參數,也不维持登入態。
- 路径規律:顺着連結、sitemap、提交记錄走,路径之間有迹可循;伪蜘蛛往往按字典顺序掃。
几種容易被誤判成伪蜘蛛的情况
- 站点接了 CDN 或反向代理,源站看到的全是中間节点 IP;
- 使用了服務端渲染或预渲染服務,其訪問特征與真蜘蛛接近;
- 自己配置的可用性监控、DNS 预取、内容校驗脚本;
- 移動端與桌面端使用不同 UA,被错誤归入伪造组。
做判断前,先確認自己在鏈路上加了哪些中間层,否則很容易把自家服務当成伪蜘蛛。
實操:把日誌做成分层
- 按 UA 分组,統計各组的請求量、獨立 IP 數和訪問路径分布;
- 對每组做 IP 反查與官方 IP 段比對,标记“確認、待確認、疑似伪造”;
- 對疑似组的路径做抽样,看是否命中不存在的目錄、參數,或出現明顯的字典掃描;
- 把確認组單獨建一份抓取統計,用它评估入口頁的抓取状况,其余组只做參考。
分层的好處是,後續調整入口頁數量、更新频率时,依據的是可信資料,而不是被伪蜘蛛抬高或压低的數字。
识別真假蜘蛛只是基础工作,它不能保證抓取量提升,也不能保證 URL 被收錄。它的意义在于让判断有依據,避免在错誤的資料上做决策。