如何在Selenium WebDriver中配置带认证的代理

更新于:

标准的ChromeDriver --proxy-server=http://ip:port 启动参数会忽略内嵌的 user:pass 登录凭据,并导致浏览器弹窗卡住等待手动登录。为了在Selenium中顺畅使用 VinaProxy 认证HTTP(S)代理,推荐通过 selenium-wire 传参,或者加载一段轻量级的Chrome onAuthRequired 后台扩展。

Selenium · HTTP Proxy Format
http://user:pass@ip:port (selenium-wire / Chrome proxy extension)
独享IPv4(机房)
🇺🇸 United States
有货
低至
₫20,000 / IP / 月
≈ US$0.74 · 以VND结算
批量阶梯价格
  • 1 个IP₫40,000
  • 5+ 个IP₫35,000
  • 10+ 个IP₫25,000
  • 20+ 个IP₫25,000
  • 50+ 个IP₫25,000
  • 100+ 个IP₫25,000
  • 200+ 个IP₫25,000
  • 500+ 个IP₫25,000
  • 1000+ 个IP₫22,000
  • 2000+ 个IP₫20,000
购买United States代理
静态住宅ISP
🇺🇸 United States
有货
低至
₫55,000 / IP / 月
≈ US$2.04 · 以VND结算
批量阶梯价格
  • 1 个IP₫75,000
  • 3+ 个IP₫70,000
  • 5+ 个IP₫65,000
  • 10+ 个IP₫60,000
  • 50+ 个IP₫60,000
  • 100+ 个IP₫60,000
  • 200+ 个IP₫60,000
  • 500+ 个IP₫55,000
购买United States代理

在Selenium中实现代理身份认证的两种可靠方案

根据你的开发语言与所使用的浏览器驱动架构选择最合适的方案:

实现方案配置代码示例最佳适用场景
selenium-wire(Python)seleniumwire_options={'proxy': {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}}Python下最快上手的方案;支持在会话运行中动态切换代理IP
Chrome Auth 扩展加载处理 chrome.webRequest.onAuthRequired 的ZIP扩展适用于Python、Java、C#标准Selenium及 undetected-chromedriver
迁移至 Playwrightbrowser.newContext({ proxy: { server, username, password } })原生支持上下文级代理认证,完全无需打包扩展

基于代理的Selenium爬虫性能调优建议

  • 将 options.page_load_strategy = 'eager',使WebDriver在DOM结构就绪后立即交互,避免等待第三方统计脚本拖慢速度
  • 在无头模式下使用 --headless=new(Chrome 109+),确保Chrome扩展与代理认证行为与有界面模式完全一致
  • 如果是纯文本电商数据抓取,可通过Chrome首选项禁用图片渲染以节约带宽并大幅提升渲染性能
  • 务必将驱动启动与操作代码包裹在 try / finally: driver.quit() 块中,防止后台残留僵尸Chromium进程

操作步骤

  1. 1

    安装 selenium-wire

    在Python虚拟环境中运行 pip install selenium-wire。

  2. 2

    定义你的 VinaProxy 代理字典

    按格式配置凭据:sw_options = {'proxy': {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}}。

  3. 3

    使用 seleniumwire_options 启动 Chrome

    实例化浏览器对象:driver = webdriver.Chrome(seleniumwire_options=sw_options)。

  4. 4

    验证出口IP地址

    访问 driver.get('https://vinaproxy.com/api/my-ip'),验证返回的JSON数据与购买的代理IP相符。

常见问题

为什么在ChromeOptions中设置'--proxy-server=http://user:pass@ip:port'不起作用?

Chromium内核出于安全设计会直接剥离启动参数中的 user:pass@ 凭据。使用 selenium-wire、onAuthRequired 扩展或迁移到 Playwright 可完美解决此问题。

在selenium-wire中能否不重启Chrome动态更换代理?

可以。随时在代码中为 driver.proxy = {'http': 'http://...', 'https': 'http://...'} 赋予新字典,即可无缝热切换上游代理。

Chrome代理扩展能在无头(Headless)模式下正常工作吗?

可以,只要使用 --headless=new 参数代替旧版的 --headless 即可保证扩展正常加载并认证。

使用不限流量的静态IP大规模运行Selenium WebDriver

覆盖7个国家的独享IPv4与静态住宅ISP代理,即时开通。

购买Selenium代理

相关文章

按平台选择代理
网络爬虫代理:面向 24/7 爬虫的不限流量独享 IPv4 与 ISP 代理池
为 Python、Playwright、Selenium 和 Scrapy 提供高速 HTTP(S) 独享 IPv4 与静态 ISP 代理,享无限月度流量。
代理配置教程
如何在 Playwright 中设置代理(浏览器级与 Per-Context 认证)
在 Node.js 和 Python 的 Playwright 中配置带认证的 HTTP(S) 代理。通过 BrowserContext 在单一浏览器实例中运行多个独立的静态 IP。
代理配置教程
如何在Python Requests中使用代理(HTTP/HTTPS与Session连接池)
在Python requests与requests.Session()中配置带认证的HTTP(S)代理。解决407 ProxyError异常并实现静态IP池轮换。
代理配置教程
如何在 Puppeteer 中配置带认证的代理(Node.js 指南)
在 Node.js Puppeteer 中配置带身份验证的 HTTP(S) 代理:通过 --proxy-server 启动参数与 await page.authenticate() 结合实现稳定代理连接。
按平台选择代理
SEO 与 SERP 排名追踪代理:精准监测 7 国搜索结果排名
追踪精准本地化关键词排名,审查 Geo 重定向,并使用不限流量独享 IPv4 与静态 ISP 代理运行 Screaming Frog 全站抓取。
按平台选择代理
Amazon代理IP:隔离Seller Central、KDP与Merch账号,严防关联风险
杜绝Amazon Seller Central、KDP及Merch on Demand账号关联封禁。提供美国静态ISP与英国/日本独享IPv4私有代理。
IPV4 · united states
美国独享IPv4代理:专用于大数据采集、SEO追踪与广告验证的高速美国IP
美国独享IPv4代理:专用于数据爬取、排名跟踪、广告验证及亚马逊调研。静态独享IP,不限流量,快速开通。
ISP · united states
美国静态ISP代理:外观等同美国家庭宽带连接的专属固定IP
美国静态ISP代理:登记在家庭宽带运营商下的美国固定IP,适用于亚马逊卖家、广告账号与Instagram。不限流量。