數據與工具

看伺服器日誌入門:找出爬蟲、錯誤與被忽略的頁面

多數人只看分析工具,因為它有圖表、有介面。但分析工具依賴前端腳本,看不到爬蟲、看不到失敗的請求、也看不到被封鎖的訪問。這些看不到的部分,經常正是問題所在。

先講兩者的差別。分析工具記錄的是「成功載入頁面且腳本有執行」的訪問;伺服器日誌記錄的是「所有抵達伺服器的請求」,包含機器人、錯誤、重新導向與被拒絕的存取。兩份資料的用途完全不同。

日誌裡的基本欄位

  1. 時間戳記:請求發生的時間。
  2. 來源位址:發出請求的 IP。
  3. 請求方法與路徑:取得哪一個網址。
  4. 狀態碼:伺服器的回應結果。
  5. 回應大小:傳回的位元組數。
  6. 使用者代理字串:宣稱自己是什麼瀏覽器或機器人。
  7. 來源頁面:從哪一頁連過來的。

七個欄位裡最重要的是狀態碼與使用者代理。前者告訴你哪裡出錯,後者告訴你是誰來的。多數的初步判讀只需要這兩欄加上路徑。

第一件事:看狀態碼分布

把一段期間內的狀態碼統計出來,看四百與五百開頭的比例。四百零四代表找不到,通常來自失效連結;三百零一與三百零二是轉址,過多代表結構有問題;五百開頭是伺服器錯誤,任何比例都值得立刻處理。

  • 404 集中在特定路徑:多半是某次改版遺留的失效連結。
  • 404 來自外部連結:可以設定轉址,把既有的外部連結價值接回來。
  • 301 鏈:連續兩次以上的轉址,應該壓平成一次。
  • 5xx:優先處理,這會直接影響抓取與使用者。

第二件事:分辨機器與人

日誌裡通常有一半以上的請求來自機器。要把它們分出來,先依使用者代理字串分組,再對可疑的來源做反向解析驗證。驗證的方式是:把 IP 做反向解析取得網域名稱,再把那個名稱做正向解析,看是否回到同一個 IP。

分出來之後,機器流量本身也有分析價值:哪些爬蟲來過、來的頻率、抓了哪些頁面。這是判斷內容是否被發現的第一手資料。

第三件事:找出從來沒有被抓過的頁面

把全站的網址清單和日誌裡出現過的路徑做比對,差集就是從來沒有被請求過的頁面。這份清單通常會讓人意外,多數站都有一到三成的頁面長期沒有任何請求。

  1. 匯出全站網址清單,來源可以是網站地圖。
  2. 從日誌取出所有被請求過的路徑,去重。
  3. 做差集,得到未被造訪的清單。
  4. 逐一檢查:是否有內部連結指向、路徑深度、是否在網站地圖內。

第四件事:找出被過度抓取的頁面

相反的情況也值得看。如果某些頁面被抓取的次數遠高於其他頁面,通常有兩種原因:它是重要的入口,或者它產生了大量參數化的變體。後者會浪費抓取資源,應該用規範化的方式處理。

工具與門檻

不需要專門的日誌分析軟體。把日誌匯出成文字檔,用試算表或幾行命令列就能完成上述四項判讀。真正的門檻不是工具,是取得日誌本身,很多託管平台不直接提供,需要透過內容傳遞網路或自建記錄。

建議的頻率

每月一次,二十到三十分鐘。重點不在深度,在於固定。連續六個月之後,你會擁有一組趨勢資料,可以判斷改動是否真的有效。單次的日誌分析只能發現當下的問題,連續的紀錄才能驗證改善。

若你想針對 AI 爬蟲做更細的判讀,站內的 三十天日誌的六個判讀點 提供了完整流程。

一份實際的月度日誌摘要

格式建議是五行:本月總請求數與機器佔比、狀態碼分布、被造訪的獨立頁面數與佔比、新增與消失的頁面各三筆、以及需要處理的問題清單。五行,每月同一天更新。

「新增與消失的頁面」這一項是最有預警價值的。某一頁原本每週都被抓,突然連續三週沒有紀錄,通常代表它出了問題,可能是內部連結被移除、可能是被誤設為不索引、也可能是回應變慢導致被降低優先序。

四個最常發現的問題

  1. 改版遺留的失效連結,集中在某個路徑前綴。
  2. 分頁或篩選參數產生的大量重複網址。
  3. 圖片或靜態檔案回傳錯誤,累積成大量的失敗請求。
  4. 某個爬蟲以過高的頻率請求,造成不必要的負載。

第四項的處理要謹慎。降低頻率的設定如果套用得太寬,可能連需要的抓取一起擋掉。建議先確認來源是否為已驗證的正規爬蟲,再決定處理方式。

日誌與分析工具的交叉使用

兩者對照時最有價值的一個問題是:日誌顯示被大量請求、分析工具卻幾乎沒有訪問紀錄的頁面是哪些?答案通常是兩類,被機器大量抓取但人不看的頁面、以及腳本沒有正確載入的頁面。

第二類是真正的問題。分析工具依賴前端腳本,如果某些頁面的腳本沒有執行,那些頁面的人類訪問就完全消失在報表裡。這種問題只有靠日誌才能發現。

日誌保存與隱私

日誌包含來源位址,在部分法規下屬於個人資料。實務上的處理原則有三:只保存分析所需的欄位、設定明確的保存期限、以及在不影響分析的前提下考慮匿名化處理。

分析競業或爬蟲行為時,多數情況不需要完整的位址,只需要能夠驗證來源是否為正規爬蟲。可以在保存時就把位址部分遮蔽,只保留驗證結果。

本文不提供法律意見,實際的保存政策應依適用法規並諮詢具備資格的專業人士。

最後一個提醒:日誌看到的是機器的行為,分析工具看到的是人的行為。兩份資料回答的是不同的問題,只看其中一份,就會有一整類的問題永遠發現不了。

最後提醒看伺服器日誌不必一次看懂全部。剛開始只要固定看三件事就有價值:哪些網址被抓最多次、哪些網址回傳非二百的狀態碼、以及機器人與真人的比例有沒有異常變化。這三項就足以抓出多數的結構問題與資源浪費。等到習慣之後再往下鑽研,也不遲。日誌的價值在於它記錄的是實際發生的事,而不是工具推估出來的事,這一點是任何報表都取代不了的。

← 回到新知列表