跳转到主要内容

解析 User Agent 字符串

User Agent 解析器读取 User-Agent 标头中的标识,并将其转换为结构化字段。下面三条固定字符串——一个桌面浏览器、一部手机和一个搜索引擎爬虫——会经过与交互式工具相同的解析器处理,随后列出解析器所应用的规则。

实例解析

Windows 版 Chrome
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
机器人 / 爬虫
否
iPhone 版 Safari
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 架构
未知
机器人 / 爬虫
否
Googlebot(智能手机爬虫)
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 结尾,再通过正向查询加以确认。

更多 User Agent 指南