宝塔拨测博客拨测技术博客
宝塔拨测

User-Agent 怎么看?从一条 UA 分辨是真人浏览器、搜索引擎爬虫还是脚本

User-Agent(简称 UA)是 HTTP 请求头里的一个字段,客户端每次访问网页时都会自动带上,告诉服务器「我是谁、用什么软件、跑在什么平台上」。它本身属于 HTTP 协议字段、不是网络拨测,但宝塔拨测的 蜘蛛模拟抓取 工具本质就是「用一条指定 UA 去抓一次网页」——能不能看懂 UA,直接决定你能不能读懂抓取结果里那一行 User-Agent。本文只解决一个问题:拿到一条 UA,怎么分辨它是真人浏览器、搜索引擎爬虫还是脚本。

UA 的标准结构:两段式

按 HTTP 规范(RFC 9110)和 MDN 对 User-Agent 头的说明,一条 UA 的基本语法是:

User-Agent: <product> / <product-version> <comment>

也就是「产品名 / 版本号 + 注释」。浏览器把这条语法展开成更复杂的形态,常见格式是:

Mozilla/5.0 (<系统信息>) <平台> (<平台细节>) <扩展>

其中 Mozilla/5.0 是历史兼容前缀——早年为兼容只认 Mozilla 的服务器,几乎所有浏览器都保留了这个开头,它并不代表浏览器真是 Mozilla。真正用来判断身份的是后面的产品名和版本号。

三类 UA 怎么一眼认出来

拿到一条 UA,先看它属于下面三类里的哪一类:

类别 典型形态 特征
真人浏览器 Mozilla/5.0 (...) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/... Safari/... 以 Mozilla/5.0 开头,带浏览器内核和平台信息
搜索引擎爬虫 Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html) 带 bot/spider 产品标识 + 官方注释 URL
脚本/命令行工具 curl/8.14.1、python-requests/2.32.3 直接「产品/版本」,没有浏览器外壳

关键区别:爬虫和浏览器都可能以 Mozilla/5.0 开头(Googlebot 就这样),所以「有没有 Mozilla/5.0」不是判断标准。判断爬虫看两点:UA 里有没有 bot/spider 这类产品标识,以及有没有 +http://... 这种指向官方说明页的注释 URL。

四条真实 UA 对照

下面四条 UA 全部来自可核实的真实来源(2026-10-30 采集):

来源 真实 UA 判定
本机 curl(实测) curl/8.14.1 脚本
本机 Python requests(实测) python-requests/2.32.3 脚本
Chrome(Android,MDN 官方示例) Mozilla/5.0 (Linux; Android 16; Pixel 9) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.12.45 Mobile Safari/537.36 真人浏览器
Googlebot 桌面版(Google 官方文档) Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Googlebot/2.1; +http://www.google.com/bot.html) Chrome/W.X.Y.Z Safari/537.36 搜索引擎爬虫

(注:W.X.Y.Z 是 Google 官方文档里对「当前 Chrome 主版本」的占位写法。)

看对照表就能明白分辨逻辑:

  • curl/8.14.1 只有产品名和版本号,一眼就是脚本。
  • Chrome 那条有完整的浏览器外壳(Mozilla/5.0 + AppleWebKit + Gecko + Chrome + Safari + 平台),但没有 bot 标识,是真人浏览器。
  • Googlebot 那条虽然也套着 Mozilla/5.0 和浏览器外壳,但末尾多了 (compatible; Googlebot/2.1; +http://www.google.com/bot.html),这个 token 就是爬虫的「身份证」。

Googlebot 的三种常见 UA 形态

Google 官方文档列出了 Googlebot 的 UA,其中最常见的三种:

  • Googlebot 桌面版:Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Googlebot/2.1; +http://www.google.com/bot.html) Chrome/W.X.Y.Z Safari/537.36
  • Googlebot 移动版:Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/W.X.Y.Z Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
  • Googlebot-Image(抓图):Googlebot-Image/1.0

注意 Googlebot 的移动版和桌面版遵守同一个 robots.txt token Googlebot,所以你没法在 robots.txt 里分别针对移动版和桌面版给不同规则。

三步判断法:拿到日志里的一条 UA 怎么定位

把上面的规律落成三个判断步骤:

  1. 看有没有浏览器外壳:没有 Mozilla/5.0、直接是 产品/版本(如 curl/8.14.1)→ 脚本/命令行工具。
  2. 看有没有爬虫标识:有 Googlebot/Baiduspider 等 bot/spider 产品名,或带 compatible; + +http://... 注释 → 搜索引擎爬虫。
  3. 看有没有平台与内核信息:有完整 AppleWebKit/Gecko/Chrome/Safari + 系统信息 → 真人浏览器。

一个必须记住的边界:UA 是客户端自报的字符串,可以被伪造。任何人用 curl -A "Mozilla/5.0 (compatible; Googlebot/2.1; ...)" 就能伪装成 Googlebot。所以 UA 只能做第一层粗筛,真要确认一个请求是不是官方爬虫,还要反查它的来源 IP 是否落在官方公布的网段内——Google 官方就公布了 googlebot.com 的 IP 网段和 hostname 特征(crawl-*.googlebot.com)供站长核对。

用宝塔拨测工具解析一条 UA

不想手工拆字段,可以把 UA 粘进 宝塔拨测的 UA 分析工具,它会自动拆出浏览器、内核、平台、设备等字段。想验证某个爬虫 UA 实际访问你的站点时会怎样,就用 蜘蛛模拟抓取 选「自定义 UA」填进去抓一次,看它拿到的 HTTP 状态码和页面内容。

一句话总结:UA 就是客户端自报的身份,判断身份别看 Mozilla/5.0 这种历史前缀,要看产品名——带 bot/spider 标识和 +http:// 官方注释的是爬虫,直接「产品/版本」的是脚本,带完整浏览器内核和平台信息的是真人;但 UA 可伪造,确认官方爬虫还得反查来源 IP 网段。

常见问题

User-Agent 是什么?写在哪里?

User-Agent(简称 UA)是 HTTP 请求头里的一个字段,由客户端(浏览器、爬虫、命令行工具)在每次请求时自动带上,告诉服务器「我是谁、用什么软件、跑在什么平台上」。服务器根据它决定返回什么内容,站长也靠它判断访问日志里的一条条记录来自真人还是爬虫。

UA 里的 Mozilla/5.0、AppleWebKit/537.36 是什么意思?

Mozilla/5.0 是历史遗留的兼容前缀,几乎所有现代浏览器都保留它,不代表真是 Mozilla 浏览器;AppleWebKit/537.36、Gecko、Chrome、Safari 这些内核标识同样来自历史兼容约定,不是真的对应某个产品。所以判断客户端身份要看 UA 里的产品名和版本号,而不是这几个前缀。

怎么从 UA 判断是不是搜索引擎爬虫?

搜索引擎爬虫的 UA 里通常带爬虫产品标识(如 Googlebot、Baiduspider)和官方注释 URL(如 +http://www.google.com/bot.html)。Google 官方做法是在 UA 末尾加 (compatible; Googlebot/2.1; +http://www.google.com/bot.html),即使前面套着 Mozilla/5.0 外壳,也能靠这个 token 认出是爬虫。

怎么判断是真人浏览器还是脚本/命令行工具?

真人浏览器 UA 以 Mozilla/5.0 开头、带浏览器内核和平台信息(AppleWebKit、Gecko、Chrome、Safari 等);脚本和命令行工具 UA 很短,直接是「产品/版本」,如 curl/8.14.1、python-requests/2.32.3,不带浏览器外壳。

UA 能伪造吗?靠 UA 判断靠谱吗?

能伪造——UA 只是客户端自报的字符串,任何人都能用 curl -A 或改请求头伪装成 Googlebot 或浏览器。所以 UA 只能做第一层粗筛:快速认出「像爬虫的请求」,真要确认是不是官方爬虫,还得反查来源 IP 是否落在官方公布的网段内(如 Google 公布的 googlebot.com 网段)。

用宝塔拨测怎么快速解析一条 UA?

把 UA 粘贴到宝塔拨测的 UA 分析工具(t.bt.cn/tools/user-agent-analyzer.html),它会拆出浏览器、内核、平台、设备等字段;想验证某个爬虫 UA 实际会怎样访问你的站点,可以用蜘蛛模拟抓取(t.bt.cn/tools/spider-crawl.html)选「自定义 UA」抓一次。

User-AgentUA搜索引擎爬虫Googlebot访问日志宝塔拨测