很多运营動作做完之後,大家最想知道的是“蜘蛛到底来没来、抓了什么”。第三方工具给的是估算,服務器日誌给的是原始记錄。日誌不能證明收錄或排名,但它能回答一個更基础的問题:抓取是否正常。下面是一套不依赖付費工具的查看思路。
一、先認清日誌里的字段
常见的 access log 每一行大致包含這几項,按看問题的顺序排列:
- 時間:用来判断抓取是否集中、是否有規律;
- 客戶端 IP:配合 UA 一起判断来源,單看 UA 容易被誤導;
- 請求方法與完整 URL:注意保留查询參數,參數是判断篩選頁被抓多少的關键;
- 狀態碼:最直接的異常信号;
- 响應大小:0 字节的 200 往往是空頁面;
- User-Agent:粗筛用,不作為唯一依據。
日誌文件會不断增長,先做按天轮轉和压缩归档,再谈分析。放在同一台机器上的日誌最好限制保留天數,避免磁盘被寫满——這属于服務器维護的常規動作,和被蜘蛛抓取本身一样重要。
二、把蜘蛛记錄單獨筛出来
先用 UA 關鍵詞過滤得到一份粗表,然後做交叉驗證:同一 IP 段在短時間内的訪問量、是否只請求頁面不請求静態资源、是否遵守 robots.txt 的路径規則。反過来,UA 寫着常见爬虫名字、行為却像普通浏览器(加载图片、CSS、执行跳轉)的,大概率不是。
狀態碼分布怎么看
- 5xx 比例升高:先查服務器和上游,抓取中断往往從這里開始;
- 404 集中在某個目錄:通常是栏目調整、内容下架後遗留的連結;
- 3xx 反复出現:可能存在跳轉鏈,蜘蛛要多跳几次才能到终点;
- 403 或 429 偏多:可能是防火墙或限速規則把蜘蛛也拦了。
抓取频次與路径集中度
把 URL 按目錄聚合,看蜘蛛把注意力花在哪。如果绝大多數請求都落在首頁、列表頁和几個热门詳情頁,而核心栏目几乎没被訪問,問题通常不在服務器,而在内鏈和结构。反過来,如果大量請求打在篩選參數、日歷頁這類低價值地址上,就要考虑參數治理。
抓取深度
從日誌里挑出 URL 层級較深的样本,看它們是不是你希望被抓的頁面。如果深层被抓的只有零散舊頁面,說明入口連結不足,靠站点地图單点提交的效果有限。
三、把日誌和站内資料對照
- 抽站点地图里的若干 URL,回日誌查是否出現過;一條都没有,先排查提交方式和 robots 規則;
- 改過内鏈的文章,對比改動前後目标頁的抓取次數;
- 把死鏈清單和日誌里的 404 记錄互相對照,避免只處理工具报的那一批。
四、一套轻量流程
- 前一天日誌解压,按小时粗看總量,找出異常時間段;
- 過滤蜘蛛记錄,統計狀態碼分布和 Top 目錄;
- 挑 10 條異常记錄人工打開確認;
- 把確認的問题寫成待办,能当场改的当天改,需要排期的记下来。
五、几個常见誤区
- 把抓取次數当成收錄數量;
- 只看 UA 就断定爬虫身份;
- 忽略 CDN 或反向代理,拿到的其實是邊缘节点的日誌;
- 日誌量太大直接放弃,其實按目錄抽样也能看出趋势。
日誌的價值不在于資料量大,而在于它记錄的是真實發生的請求。每周花半小时翻一遍,比事後猜测要省力得多。