You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Selenium中无需扩展修改Chrome的User Agent客户端提示头?

你想要的修改效果完全可以实现,不需要借助浏览器扩展,但无法直接照搬修改普通User-Agent的add_argument("user-agent=" + xxx)的写法,有两种可行方案:

方案1:使用Chrome原生命令行参数直接配置

Chrome 89及以上版本提供了专门的启动参数,直接指定UA客户端提示的取值,直接加到启动配置里即可,示例如下:

from selenium.webdriver.chrome.options import Options

chrome_options = Options()
# 修改Sec-CH-UA-Platform,比如要模拟Windows就填"Windows",模拟macOS填"macOS"
chrome_options.add_argument('--ua-platform="macOS"')
# 修改Sec-CH-UA,注意格式是多组品牌+版本用逗号分隔,每组都要加双引号
chrome_options.add_argument('--ua-brand-version-list="Google Chrome";v="119", "Chromium";v="119", "Not=A?Brand";v="24"')
# 修改Sec-CH-UA-Mobile,?0代表非移动设备,?1代表移动设备
chrome_options.add_argument('--ua-mobile=?0')
# 修改Sec-CH-UA-Platform-Version,比如对应macOS 14.1就填"14.1"
chrome_options.add_argument('--ua-platform-version="14.1"')

这种方式的优点是配置简单,和你之前修改普通UA的逻辑一致,直接加启动参数即可。

方案2:通过Chrome DevTools Protocol(CDP)动态设置请求头

如果需要修改的客户端提示头没有对应启动参数,或者需要在脚本运行过程中动态修改取值,可以调用Selenium内置的CDP接口覆盖请求头,示例如下:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
# 此处可以保留你原来的普通UA修改逻辑
USER_AGENT = "Mozilla/5.0 (Macintosh; Intel Mac OS X 14_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
chrome_options.add_argument(f"user-agent={USER_AGENT}")

driver = webdriver.Chrome(options=chrome_options)
# 调用CDP接口设置额外HTTP头
driver.execute_cdp_cmd("Network.setExtraHTTPHeaders", {
    "headers": {
        "Sec-CH-UA-Platform": "macOS",
        "Sec-CH-UA": '"Google Chrome";v="119", "Chromium";v="119", "Not=A?Brand";v="24"',
        "Sec-CH-UA-Mobile": "?0",
        "Sec-CH-UA-Platform-Version": "14.1"
    }
})

注意这种方式需要先启动driver再执行配置,所有后续发起的请求都会携带你设置的自定义头。

内容的提问来源于stack exchange,提问作者agile-keyboard

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 02:30:02