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

如何配置带用户名密码的Socks5代理启动Selenium WebDriver

解决Selenium配置带用户名密码的Socks5代理无效问题

问题原因

Chrome浏览器目前不支持直接在Socks5代理URL中嵌入用户名密码(socks5://user:pass@host:port格式会被忽略密码),且Selenium内置的Proxy类的socks_username和socks_password参数在新版本Chrome/ChromeDriver中无法正确传递认证信息,导致代理不生效。

解决方案:使用Chrome代理扩展处理认证

通过自定义Chrome扩展自动完成代理认证,是目前最可靠的实现方式:

步骤1:创建代理扩展文件

在本地新建一个文件夹,放入以下两个文件:

  1. manifest.json(扩展配置文件)
{
  "version": "1.0.0",
  "manifest_version": 3,
  "name": "Socks5 Proxy Auth",
  "permissions": ["proxy", "storage", "activeTab", "scripting"],
  "background": {
    "service_worker": "background.js"
  },
  "minimum_chrome_version": "100.0.0.0"
}
  1. background.js(代理逻辑脚本)
const config = {
  mode: "fixed_servers",
  rules: {
    singleProxy: {
      scheme: "socks5",
      host: "1.2.3.4",
      port: 59101
    },
    bypassList: ["localhost"]
  }
};

chrome.proxy.settings.set({value: config, scope: "regular"}, () => {});

chrome.webRequest.onAuthRequired.addListener(
  (details, callbackFn) => {
    callbackFn({
      authCredentials: {
        username: "username",
        password: "password"
      }
    });
  },
  {urls: ["<all_urls>"]},
  ["blocking"]
);

步骤2:在Selenium中加载扩展

修改你的Selenium代码,通过ChromeOptions加载上述扩展文件夹:

from selenium import webdriver

options = webdriver.ChromeOptions()
# 替换为你存放扩展文件的文件夹路径
options.add_argument(r'--load-extension=C:\path\to\your\proxy-extension-folder')
# 禁用扩展自动更新,避免干扰代理配置
options.add_argument('--disable-extensions-except=C:\path\to\your\proxy-extension-folder')
options.add_argument('--disable-component-update')

driver = webdriver.Chrome(
    executable_path=r"C:\Users\User\Downloads\chromedriver-win64\chromedriver.exe",
    options=options
)

# 访问IP检测网站验证代理是否生效
driver.get("https://whatsmyip.org/")

备选方案:旧版Chrome启动参数配置(仅适用于Chrome 99及以下)

如果使用的是旧版Chrome,可以尝试直接通过启动参数设置代理,但该方式在新版Chrome中已被禁用:

from selenium import webdriver

options = webdriver.ChromeOptions()
# 设置Socks5代理地址
options.add_argument('--proxy-server=socks5://1.2.3.4:59101')

driver = webdriver.Chrome(
    executable_path=r"C:\Users\User\Downloads\chromedriver-win64\chromedriver.exe",
    options=options
)

注意事项

  • 确保ChromeDriver版本与你的Chrome浏览器版本完全匹配,版本不兼容会导致代理配置失败
  • 启动前关闭所有已打开的Chrome窗口,避免用户数据目录干扰代理设置
  • 扩展文件中的代理地址、用户名、密码需与实际代理信息完全一致

内容的提问来源于stack exchange,提问作者frontenddevel0per

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 11:42:44