搜尋抓取

搜尋蜘蛛抓取日誌的清洗:UA、反向 DNS 與 IP 段的三重校驗

抓取日誌里带 Googlebot、Baiduspider 字样的請求未必是真實搜尋蜘蛛。本文给出 UA 初筛、反向 DNS 正反查、官方 IP 段核對的三重校驗流程,並說明伪蜘蛛流量该如何處理,帮助把抓取統計與服務器策略建立在可信資料之上。

搜尋抓取

搜尋蜘蛛抓取日誌的清洗:UA、反向 DNS 與 IP 段的三重校驗

抓取日誌里出現大量带 Googlebot、Baiduspider 字样的請求,並不代表搜尋蜘蛛真的来過。UA 字符串可以被任意伪造,如果把伪蜘蛛的請求直接算進抓取統計,後續對抓取频次、入口有效性、服務器压力的判断都會跟着偏移。

為什么先做识別,再谈抓取分析

跳過识別這一步,常见的誤判有三種:

  • 把掃描器、第三方采集工具、监控探针当成搜尋蜘蛛,誤以為抓取量在上升;
  • 真實蜘蛛的抓取被伪蜘蛛噪声淹没,反而誤判為抓取下降;
  • 按伪造 UA 的請求节奏去調服務器限速或缓存策略,结果是真實蜘蛛被限。

這三類問题的共同点在于:資料本身不可信,後面的分析做得再细也没有意义。

三重校驗的先後顺序

第一步:User-Agent 只做初筛

真實搜尋引擎的 UA 通常包含固定标识,如 Googlebot、Bingbot、Baiduspider、YandexBot 等。但字符串可以照抄,所以 UA 命中只能作為候選,不能当作结论。這一步的作用是把日誌范围缩小到需要進一步核對的請求。

第二步:反向 DNS 正反查

對候選 IP 做反向解析,看解析出的域名是否落在官方域名後缀下,例如 Googlebot 常见 crawl-xxx.googlebot.com 或 xxx.google.com,Bing 常见 xxx.search.msn.com 一類後缀。

反向解析通過後,還要再做一次正向解析,確認该域名解析回来的 IP 與原始来源 IP 完全一致。只有双向都對得上,才基本可以認定。如果反向解析失敗,或者正向结果與来源 IP 不符,就應当按普通流量處理。

第三步:IP 段核對

搜尋引擎會公布自己的抓取 IP 段。Googlebot 以 JSON 文件形式提供,Bing、百度也有各自的說明頁。把已经通過反向 DNS 的 IP 再與官方段比對一次,可以覆盖 DNS 配置異常或本地解析缓存带来的偏差。IP 段會更新,建议定期同步,而不是一次性抄下来長期使用。

一個可以固定下来的核對流程

  1. 從日誌中筛出 UA 含蜘蛛标识的請求,輸出 IP、UA、時間、狀態碼等字段;
  2. 對去重後的 IP 做反向解析,记錄 PTR 结果;
  3. 對 PTR 结果做正向解析,與来源 IP 比對;
  4. 與官方 IP 段列表比對;
  5. 三項都通過的标记為真實蜘蛛,其余归入待观察或普通流量。

這套流程可以脚本化,每天增量跑一次即可,成本不高。

伪蜘蛛流量怎么處理

  • 不要在 robots.txt 里试图屏蔽,伪蜘蛛不會遵守;
  • 用限速規則或 WAF 按請求频率、路径特征處理,避免直接封整個 IP 段;
  • 观察它是否集中請求搜尋接口、登入頁、购物车等與抓取無關的路径,這類請求基本不是搜尋蜘蛛;
  • 保留一段观察期,避免把 CDN 回源、运营商 NAT 出口等正常流量一起誤判。
识別蜘蛛的目的不是封禁,而是让日誌統計和服務器策略建立在可信資料上。誤封真實蜘蛛的代價,通常比放過一批伪蜘蛛更高。

清洗之後的日誌能回答什么

当日誌里只剩下可驗證的蜘蛛請求,此前很多说不清的波動會變得清晰。例如某個时段抓取量下降,是蜘蛛真的减少了回訪,還是伪蜘蛛噪声變少;某個目錄請求频次高,是入口确實有效,還是被異常參數反复請求。服務器侧的限速、缓存與回源策略,也才可以只针對可信流量来评估效果。

小结

UA 初筛、反向 DNS 正反查、官方 IP 段核對,三步都不复杂,但能明顯提高抓取分析的准确度。把這一步固定成日誌處理的前置环节,後面關于抓取路径、入口有效性和服務器承载的判断才站得住脚。