Pyppeteer无法加载Brave浏览器扩展的问题求助
Brave + Pyppeteer 无法加载扩展的问题排查与解决
我用Brave浏览器替代Chromium,但Pyppeteer无法加载配置文件中的任何扩展。相同场景下使用C#/.NET的PuppeteerSharp完全正常,查阅Pyppeteer API文档并按要求操作后仍无法解决问题。我的代码如下:
from urllib.parse import urlencode from pystyle import * import os, sys, time, random, threading, requests, json, base64 from html5lib import * import asyncio from pyppeteer import launch from pyppeteer_stealth import stealth from pystyle import Colorate, Colors, Write, Add, Center, System from pyppeteer.dialog import Dialog from typing import Any, Awaitable, Callable, Dict, List, Optional, Union async def browser_with_extensions(): _extention1_path = "C:\Users\PC_USER\AppData\Local\BraveSoftware\Brave-Browser\User Data\Default\Extensions\ofjjanaennfbgpccfpbghnmblpdblbef\1.3_0" _executablePath = "C:\Program Files\BraveSoftware\Brave-Browser\Application\brave.exe" _userDataDir = "C:\Users\PC_USER\AppData\Local\BraveSoftware\Brave-Browser\User Data" url = "" args = [ '--disable-extensions-except={}'.format(_extention1_path), '--load-extensions={}'.format(_extention1_path), '--enable-automation', '--start-maximized', '--hide-scrollbars', '--disable-bundled-ppapi-flash', '--mute-audio', '--no-sandbox', '--disable-setuid-sandbox', '--disable-gpu' ] browser = await launch({ 'headless': False, 'slowMo': 5, 'options': {'args': args}, 'executablePath': _executablePath, 'userDataDir': _userDataDir, 'defaultViewport': None }) page = await browser.newPage() await stealth(page) await page.goto(url, {'waitUntil' : 'domcontentloaded'})
排查与解决要点
修复路径转义错误:Python中字符串的
\是转义字符,直接使用单反斜杠会导致路径解析异常。将路径改为原始字符串(前缀加r)或双反斜杠:_extention1_path = r"C:\Users\PC_USER\AppData\Local\BraveSoftware\Brave-Browser\User Data\Default\Extensions\ofjjanaennfbgpccfpbghnmblpdblbef\1.3_0" _executablePath = r"C:\Program Files\BraveSoftware\Brave-Browser\Application\brave.exe" _userDataDir = r"C:\Users\PC_USER\AppData\Local\BraveSoftware\Brave-Browser\User Data"消除UserDataDir与扩展加载参数的冲突:指定
userDataDir时,Brave会自动加载该目录下的已安装扩展,此时--disable-extensions-except和--load-extensions可能与已有配置冲突,二选一即可:- 若无需保留用户配置,去掉
userDataDir参数,仅通过--load-extensions加载目标扩展 - 若必须使用用户目录,删除
--disable-extensions-except和--load-extensions参数,直接依赖目录内的已安装扩展,注意启动前关闭所有Brave实例避免目录占用
- 若无需保留用户配置,去掉
调整Pyppeteer启动参数结构:部分Pyppeteer版本要求
args直接作为顶层参数,而非嵌套在options中,修改启动代码:browser = await launch({ 'headless': False, 'slowMo': 5, 'args': args, 'executablePath': _executablePath, 'userDataDir': _userDataDir, 'defaultViewport': None })检查权限与沙箱设置:Windows环境下尝试以管理员身份运行脚本,确保
--no-sandbox和--disable-setuid-sandbox参数生效,避免权限限制导致扩展加载失败验证扩展自动化兼容性:部分扩展会检测自动化环境并拒绝加载,即使使用
stealth也可能无法绕过。可以尝试在扩展的配置中关闭自动化检测,或更换支持自动化加载的扩展版本
内容的提问来源于stack exchange,提问作者dev_bot_official
相关产品推荐
相关产品推荐

