解析 User Agent 字串
User Agent 解析器會讀取 User-Agent 標頭中的標記,並將其轉換為結構化欄位。以下三條固定字串——一個桌面瀏覽器、一支手機與一個搜尋引擎爬蟲——會經過與互動式工具相同的解析器處理,接著列出解析器所套用的規則。
實例解析
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36
- 瀏覽器
- Chrome 120.0.0.0
- 渲染引擎
- Blink
- 作業系統
- Windows 10/11
- 裝置類型
- 桌面
- 裝置
- 未知
- CPU 架構
- x64
- 機器人 / 爬蟲
- 否
Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1
- 瀏覽器
- Safari 17.0
- 渲染引擎
- WebKit
- 作業系統
- iOS 17.0
- 裝置類型
- 行動
- 裝置
- Apple iPhone
- CPU 架構
- 未知
- 機器人 / 爬蟲
- 否
Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.6099.216 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
- 瀏覽器
- Chrome 120.0.6099.216
- 渲染引擎
- Blink
- 作業系統
- Android 6.0.1
- 裝置類型
- 機器人
- 裝置
- Nexus 5X Build/MMB29P
- CPU 架構
- 未知
- 機器人 / 爬蟲
- Googlebot
Windows 版 Chrome 傳送 Windows NT 10.0,Windows 10 與 Windows 11 共用這個值,因此作業系統顯示為 10/11。在 iPhone 上,Version/17.0 提供 Safari 版本,iPhone OS 17_0 提供 iOS 版本。Googlebot 字串內嵌了完整的 Android 版 Chrome User Agent,但爬蟲簽名會最先檢查,因此裝置類型為 bot;瀏覽器與作業系統欄位仍會顯示爬蟲自稱的身分。
關鍵規則
- 最先檢查爬蟲簽名:Googlebot、Bingbot、DuckDuckBot、YandexBot、Baiduspider、Slackbot、Twitterbot 與 facebookexternalhit。一旦相符,即使存在瀏覽器標記,裝置類型也會設為 bot。
- 瀏覽器依固定順序比對——Edge(Edg/)、Opera(OPR/)、Samsung Internet、Firefox、Chrome、Safari,最後是 Chromium——因為大多數字串也包含其他瀏覽器的標記。引擎隨瀏覽器而定:Blink、Gecko 或 WebKit。
- 作業系統取自括號中的平台區段:iPhone、iPad、Android、Windows NT、CrOS、Mac OS X 或 Linux。Apple 版本號中的底線會轉換為點。
- 裝置類型的判定:iPad、Tablet 標記或不含 Mobile 標記的 Android 為平板;iPhone 或含 Mobile 標記的 Android 為行動;Windows、macOS、Linux 與 ChromeOS 為桌面。
- 字串中未說明的內容一律維持未知(JSON 輸出中為 null),而不是猜測。只有瀏覽器與作業系統都相符時,信心度才為高。
- 任何用戶端都能傳送 Googlebot 的 User Agent。若要確認是真正的 Google 爬蟲,請對請求 IP 進行反向 DNS 查詢,檢查主機名稱是否以 googlebot.com 或 google.com 結尾,再以正向查詢加以確認。