User-Agent 解析器
解析 User-Agent 字符串:浏览器、引擎、操作系统、设备类型,以及是否为机器人。留空则解析你自己的浏览器。
代码示例
可直接复制到你自己的项目中。每个示例只使用该语言的标准库,因此无需安装任何东西。
const userAgent = 'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)'
console.log(/bot|crawl|spider|slurp/i.test(userAgent) ? 'crawler' : 'browser')功能
读取 User-Agent 字符串,给出浏览器、渲染引擎、操作系统、设备类型,以及是否属于机器人或爬虫。输入为空时,会解析你自己的浏览器。
使用方法
- 粘贴日志、请求头或缺陷报告中的 User-Agent 字符串。
- 结果格式选择文本或 JSON。
- 复制或下载,或作为下一步的输入。
示例
Mozilla/5.0 (Windows NT 10.0; Win64; x64) … Chrome/126.0.0.0 Safari/537.36 是 Windows 上的 Chrome 126,由 Blink 渲染,设备为桌面。Mozilla/5.0 (compatible; Googlebot/2.1; …) 是机器人,并会显示匹配到的特征。
须知
- 结果来自两个持续维护的库:bowser(浏览器、引擎、系统、设备类型)和 isbot(机器人判断),规则随它们的版本更新。
- 只有字符串里带有设备信息时才会显示设备。Chrome 每年报告的内容都在减少,所以版本和设备信息经常缺失。
- User-Agent 是客户端想发什么就能发什么:机器人判断只是线索,不是保证。
- 库会在第一次有内容可读时才加载。
为什么显示 unknown?
User-Agent 是自由文本,而浏览器每年公开的信息都在减少:例如 Chrome 会冻结版本号并隐藏设备。解析器只报告字符串里有的内容,找不到的部分就保持未知。
常见问题
能告诉我确切的设备吗?
只有字符串里写明设备时才行,很多 Android 手机和 iPhone 会写,桌面浏览器很少写。没有可显示的内容时,会省略设备这一行。
它如何判断是机器人?
它把字符串与持续维护的爬虫特征列表比对,并显示匹配到的特征。机器人可以发送任意 User-Agent,所以请把结果当作线索,而不是证据。
这个工具会把我的 User-Agent 发到别处吗?
不会。你自己的 User-Agent 在浏览器中读取和解析,你输入的内容也不会发送到我们的服务器。