平台的抓取統計通常有延迟、聚合和抽样,看到的是结果,而不是過程。服務器日誌是原始记錄,能回答“哪個 IP 在什么時間請求了哪個 URL、返回了什么狀態碼、响應花了多久”。把日誌讀顺,抓取相關的問题往往能缩小到具体几類。
先確認請求方身份,再谈資料
User-Agent 是自称,不能單獨作為判断依據。稳妥的做法是三层交叉:日誌里的 UA 字符串、請求来源 IP,以及對该 IP 做反向解析得到的主机名是否属于官方網段。
- 只按 UA 過滤,會把伪装流量算進蜘蛛,也可能漏掉官方新啟用的 UA。
- 反向解析要双向驗證:解析出的主机名再正向解析回原 IP,才算通過。
- 云主机、爬虫代理、监控探针的 IP 经常带着相似 UA,建议單獨打标簽,不要混進蜘蛛統計。
- 日誌保留周期至少覆盖一個完整發布周期,否則無法對比改版前後的差异。
日誌里“像蜘蛛”和“是蜘蛛”是两件事,前者只能作為线索。
狀態碼分布能看出入口的健康度
把通過驗證的蜘蛛請求按狀態碼分组,看比例而不是绝對數量。常见的几個信号:
- 3xx 占比偏高:說明入口連結指到了跳轉地址,抓取路径多走一步;鏈路較長时容易在中間断掉。
- 404 集中出現:多數情况是内鏈指向了已刪除或拼错的 URL,属于可修問题;零散 404 更可能来自站外老連結,優先級可以低一些。
- 5xx 偶發:先對齐時間点,看是否與發布、备份、缓存刷新重叠,再判断是容量問题還是代碼問题。
- 304 較多:代表内容未變、蜘蛛按條件請求回訪,不等于没有抓取,不必当成異常。
抓取落点分布反映预算去向
統計蜘蛛請求落在哪些 URL 類型上:栏目頁、詳情頁、标簽頁、篩選參數頁、站内搜尋頁、日歷归档頁。如果參數頁占比很高,而詳情頁長期没有被訪問,說明站内連結把蜘蛛引向了低價值頁面。
- 對没有獨立價值的參數组合,考虑 robots 規則、canonical 归並,或者干脆不輸出這類連結。
- 希望被發現的詳情頁,检查是否存在從栏目頁直達的静態連結,而不是藏在多級篩選之後。
- 站内搜尋、排序、打印、分享類連結建议預設不生成可抓取 URL。
节奏與時間窗:抓取是否過于集中
按小时聚合,能看到抓取是否集中在很短的窗口、是否反复回訪少數几個 URL。入口單一的站点,日誌常表現為“少數頁面高频、多數頁面完全不出現”。這種情况下,優先补内鏈和聚合入口,比反复提交更有效。
同时记錄响應耗时分布。耗时中位數上升时,蜘蛛通常不會長時間等待,會降低並發或放弃部分 URL,表現為抓取總量下降、深层頁面更少被訪問。這與狀態碼無關,需要單獨看。
几個容易被誤讀的地方
- 把 CDN 回源日誌当成蜘蛛直连记錄,導致重复計數。
- 用總請求量代替已驗證的蜘蛛請求量,得出“抓取暴涨”的结论。
- 把 304 当成“没抓”,把 200 当成“已收錄”。
- 只看單日資料就下判断,忽略周内波動和發布节奏。
一份可复核的日誌清單
- 驗證方式、驗證通過的 IP 段、統計時間范围。
- 狀態碼分布,以及每類狀態碼的 URL 样例。
- 抓取落点按 URL 類型分组的占比。
- 响應耗时中位數與 P95。
- 與上次核對的差异点,以及准备調整的入口或連結。
日誌只能說明蜘蛛来過、請求了什么、拿到了什么结果,它並不直接决定内容是否被收錄。把日誌当成排查入口問题的工具,按上述顺序核對,比凭印象調整站点结构更容易得到可驗證的结论。