User-Agent 更新日志
本页面汇总了 CapMonster Cloud 所支持的 User-Agent 更新历史记录。您可以在这里了解新版本、获取当前的 User-Agent 值,并查看其在 API 请求、浏览器自动化以及不同编程语言中的使用示例。
CapMonster Cloud 会定期更新所支持的 User-Agent。我们会在本博客版块、论坛、文档以及官方 Telegram 频道 ZennoLab 和 CapMonster Cloud 中发布 User-Agent 更新信息。
使用最新的 User-Agent 值有助于确保任务参数的一致性、提高 CAPTCHA 处理的稳定性,并降低因浏览器数据过时而导致错误的可能性。
重要:要使用 CapMonster Cloud,不能仅使用最新发布的 Chrome 版本,而必须使用当前由服务支持的 User-Agent。
您始终可以通过 API 自动获取当前的 User-Agent 值(请求方法:GET):
https://capmonster.cloud/api/useragent/actual
User-Agent 更新历史
| 版本 | 更新时间 | User-Agent |
|---|---|---|
150 当前版本 | 16.07.2026 | |
| 149 | 17.06.2026 | |
| 148 | 20.05.2026 | |
显示所有版本
| 147 | 07.05.2026 | |
| 146 | 31.03.2026 | |
| 145 | 27.02.2026 | |
| 144 | 29.01.2026 | |
| 143 | 19.12.2025 | |
| 142 | 11.11.2025 | |
| 141 | 13.10.2025 | |
| 140 | 17.09.2025 | |
| 139 | 21.08.2025 | |
| 138 | 15.07.2025 | |
| 136 | 14.05.2025 | |
| 135 | 15.04.2025 | |
| 134 | 31.03.2025 | |
| 133 | 13.02.2025 | |
| 132 | 29.01.2025 | |
| 131 | 19.11.2024 | |
| 130 | 23.10.2024 | |
| 129 | 27.09.2024 | |
| 128 | 30.08.2024 | |
什么是 User-Agent
User-Agent – 是浏览器或其他 HTTP 客户端在发送请求时传递给网站的一段字符串。它包含有关浏览器、操作系统和所使用引擎的信息。
示例:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36该字符串表示请求是由运行在 64 位 Windows 系统上的 Chrome 浏览器发起的。
网站可能会将 User-Agent 与其他客户端参数结合使用,例如 HTTP 请求头、cookies、IP 地址、浏览器设置以及 JavaScript 执行结果。因此,它应与会话中的其他参数保持一致。
CapMonster Cloud 为什么要更新 User-Agent
浏览器版本会定期更新,随着浏览器版本的变化,用于创建浏览器会话和发送请求的相关参数也会随之更新。
使用过时或不受支持的 User-Agent 可能会降低 CAPTCHA 解决的稳定性,或导致其他错误。
不建议自行生成 User-Agent 字符串、随意指定版本或仅根据最新发布的 Chrome 版本进行选择。新的浏览器版本可能已经发布,但服务尚未支持该版本。
获取和使用 User-Agent
可以通过 CapMonster Cloud API 获取最新的 User-Agent:
JavaScript
const response = await fetch(
"https://capmonster.cloud/api/useragent/actual",
);
if (!response.ok) {
throw new Error(
`无法获取当前 User-Agent:${response.status}`,
);
}
const userAgent = (await response.text()).trim();
console.log("当前 User-Agent:", userAgent);Python
import requests
response = requests.get(
"https://capmonster.cloud/api/useragent/actual",
timeout=30,
)
response.raise_for_status()
user_agent = response.text.strip()
print("当前 User-Agent:", user_agent)C#
using System.Net.Http;
using var httpClient = new HttpClient();
var userAgent = (
await httpClient.GetStringAsync(
"https://capmonster.cloud/api/useragent/actual"
)
).Trim();
Console.WriteLine($"当前 User-Agent:{userAgent}");cURL
curl https://capmonster.cloud/api/useragent/actual
自动化工具
获取的值可以在自动化工具和无头浏览器中创建浏览器上下文时使用,例如在 Playwright 中:
import { chromium } from "playwright";
const response = await fetch(
"https://capmonster.cloud/api/useragent/actual",
);
if (!response.ok) {
throw new Error(
`无法获取 User-Agent:${response.status}`,
);
}
const userAgent = (await response.text()).trim();
const browser = await chromium.launch({
headless: false,
});
const context = await browser.newContext({
userAgent,
});
const page = await context.newPage();
await page.goto("https://example.com");为了完整模拟所需版本的 User-Agent,还需要配置相应的 Client Hints 值,包括 Sec-CH-UA 请求头:
显示代码 隐藏代码
import { chromium } from "playwright";
const response = await fetch("https://capmonster.cloud/api/useragent/actual");
if (!response.ok) {
throw new Error(`无法获取 User-Agent:${response.status}`);
}
const userAgent = (await response.text()).trim();
console.log("从 API 获取的 User-Agent:", userAgent);
// 提取 Chrome 的完整版本和主版本
const chromeVersionMatch = userAgent.match(/Chrome\/(\d+(?:\.\d+){0,3})/);
if (!chromeVersionMatch) {
throw new Error("无法从 User-Agent 中提取 Chrome 版本。");
}
const fullVersion = chromeVersionMatch[1];
const majorVersion = fullVersion.split(".")[0];
const browser = await chromium.launch({
headless: false,
devtools: true,
});
const context = await browser.newContext();
const page = await context.newPage();
const cdpSession = await context.newCDPSession(page);
await cdpSession.send("Emulation.setUserAgentOverride", {
userAgent,
platform: "Win32",
userAgentMetadata: {
brands: [
{
brand: "Chromium",
version: majorVersion,
},
{
brand: "Google Chrome",
version: majorVersion,
},
{
brand: "Not_A Brand",
version: "99",
},
],
fullVersionList: [
{
brand: "Chromium",
version: fullVersion,
},
{
brand: "Google Chrome",
version: fullVersion,
},
{
brand: "Not_A Brand",
version: "99.0.0.0",
},
],
fullVersion,
platform: "Windows",
platformVersion: "10.0.0",
architecture: "x86",
model: "",
mobile: false,
bitness: "64",
wow64: false,
},
});
await page.goto("https://example.com", {
waitUntil: "networkidle",
});
// 检查浏览器上下文中的值
const browserData = await page.evaluate(async () => {
const highEntropyValues = await navigator.userAgentData?.getHighEntropyValues(
[
"architecture",
"bitness",
"fullVersionList",
"mobile",
"model",
"platform",
"platformVersion",
"wow64",
],
);
return {
userAgent: navigator.userAgent,
userAgentData: navigator.userAgentData
? {
brands: navigator.userAgentData.brands,
mobile: navigator.userAgentData.mobile,
platform: navigator.userAgentData.platform,
...highEntropyValues,
}
: null,
};
});
console.log("浏览器数据:", JSON.stringify(browserData, null, 2));
if (browserData.userAgent !== userAgent) {
throw new Error(
"浏览器的 User-Agent 与从 API 获取的值不一致。",
);
}
console.log(
"User-Agent 和 Client Hints 已配置。请打开 DevTools 中的 Network 选项卡并重新加载页面,以检查请求标头。",
);
即使 Playwright 中安装的 Chromium 版本不同,这也可以打开使用所需 User-Agent 版本的页面。

如何在任务中传递 User-Agent
如果所选任务类型支持 userAgent 字段,则需要将获取的值传递到该字段中。
{
"clientKey": "API_KEY",
"task": {
"type": "ExampleTask",
"websiteURL": "https://example.com",
"websiteKey": "SITE_KEY",
"userAgent": "USER_AGENT_FROM_ENDPOINT"
}
}将通过 API 端点 获取的字符串替换 USER_AGENT_FROM_ENDPOINT。
reCAPTCHA v2 示例:
{
"clientKey": "API_KEY",
"task": {
"type": "RecaptchaV2Task",
"websiteURL": "https://yourwebsite.com/page-with-recaptcha",
"websiteKey": "your-website-key",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36"
}
}具体参数取决于任务类型。在集成之前,请在 CapMonster Cloud 文档中查看所需 CAPTCHA 的说明。
会话期间 User-Agent 的一致性
如果 CAPTCHA 的解决过程(完成验证)与特定浏览器会话相关,则必须在所有阶段保持 User-Agent 不变:
- 通过 CapMonster Cloud API 获取受支持的值。
- 创建任务时传递该值。
- 在浏览器或 HTTP 客户端中使用相同的值。
- 在该会话后续请求中不要更改该值。
例如,不应使用 Chrome 150 的 User-Agent 创建任务,然后使用 Chrome 149 的 User-Agent 在请求中使用获取的结果。
如果 User-Agent 与以下参数一起使用,则保持一致性尤其重要:
- 代理;
- cookies;
- 令牌;
- 浏览器请求头;
- 会话参数;
- Client Hints。
Client Hints 的值,包括 Sec-CH-UA、Sec-CH-UA-Mobile 和 Sec-CH-UA-Platform,必须与主要 User-Agent 保持一致。在真实浏览器中,这些请求头通常会自动生成,但在手动发送 HTTP 请求时,需要单独指定并检查这些值。
在获取和后续使用 cookies 时,保持请求头的一致性尤其重要(例如,在使用 DataDome、Cloudflare Challenge、Imperva、TSPD 的任务中)。有关 User-Agent 和浏览器请求头的配置、页面打开以及在同一会话中完成整个解决流程的示例,请参阅此部分。
在 macOS 和 Linux 上使用
CapMonster Cloud 支持 Windows 的 User-Agent,但这并不意味着它不能在其他操作系统上使用。
如果服务返回的是 Windows 的 User-Agent,请在请求中直接使用该值,不要进行任何修改,无论计算机或服务器使用的是哪种操作系统。请勿手动将 "Windows NT 10.0; Win64; x64" 片段替换为 macOS 或 Linux 的值。
在使用自动化工具时配置 Client Hints,需要保持相同的平台:
- platform – Win32;
- Sec-CH-UA-Platform – "Windows";
- architecture – x86;
- bitness – 64。
这样,User-Agent、Client Hints 和 JavaScript API 的值将描述同一个保持一致的浏览器会话。
重要:修改 User-Agent 和 Client Hints 并不会在整个系统层面将 macOS 或 Linux 变成 Windows。可用字体、图形子系统、媒体编解码器以及其他环境特征等参数仍可能取决于运行浏览器的操作系统。
建议
为确保 User-Agent 稳定运行:
✓ 通过 CapMonster Cloud API 获取最新的 User-Agent 字符串;
✓ 不要手动构造版本;
✓ 不要只参考最新版本的 Chrome;
✓ 在整个会话期间使用同一个值;
✓ 如果任务类型支持 "userAgent" 字段,则将其传递到任务中;
✓ 在后续请求中使用相同的值;
✓ 确保其与其他请求头保持一致;
✓ 获取解决结果后不要更改 User-Agent;
✓ 创建新会话时更新配置。





