如何通过命令行参数启动默认关闭Shields的Brave浏览器(适配Selenium)
Selenium 配置Brave浏览器禁用Shields/指纹拦截方案
命令行参数实现(适配现有代码逻辑)
Brave 基于Chromium开发,除通用Chromium参数外,支持专属启动参数直接控制Shields状态,可直接传入Selenium的Options配置:
- 全局默认关闭所有站点Shields:使用参数
--disable-brave-shields - 仅关闭指纹识别拦截、保留其他Shields防护能力:使用参数
--disable-features=BraveFingerprintingProtection
修正后的可直接运行代码如下:
from selenium.webdriver import Chrome from selenium.webdriver.chrome.options import Options as ChromeOptions options = ChromeOptions() # 按需二选一即可 # 1. 全局关闭Shields options.add_argument("--disable-brave-shields") # 2. 仅关闭指纹识别拦截(注释上面一行再启用下面这行) # options.add_argument("--disable-features=BraveFingerprintingProtection") options.binary_location = "/usr/bin/brave-browser" # 请提前下载和本地Brave内核版本匹配的ChromeDriver driver = Chrome(options=options)
非命令行参数替代方案
如果不希望通过启动参数控制,可选择以下两种实现方式:
- 首选项注入:通过Selenium的实验性配置项直接写入Brave的配置首选项,启动时自动加载
其中指纹保护模式取值:options.add_experimental_option("prefs", { # 全局关闭Shields "brave.shields.enabled": False, # 仅关闭指纹拦截的配置(和上面的全局配置二选一) # "brave.shields.fingerprinting_protection_mode": 0 })0为完全关闭、1为标准拦截、2为严格拦截,可按需调整。 - 站点级规则配置:如果不需要全局修改Shields状态,可在driver初始化完成后,通过Chrome DevTools Protocol给目标站点单独下发Shields关闭规则,不影响其他站点的默认防护逻辑。
注意:如果你给Selenium指定了已存在的Brave用户数据目录,目录内保存的站点专属Shields规则优先级会高于启动参数和首选项配置,可能导致配置不生效。这种情况建议给Selenium启动的浏览器单独指定一个空的用户数据目录,添加参数
options.add_argument("--user-data-dir=/自定义的空目录绝对路径")即可。
内容的提问来源于stack exchange,提问作者Francesco Musso
相关产品推荐
相关产品推荐

