跳到正文

Selenium 代理 IP 设置:带用户名密码的代理怎么配(Chrome 实测)

Chrome 不认代理设置里的「用户名:密码」,Selenium 自带的 BiDi 认证处理可以替你应答代理的密码请求。

为什么 Selenium 用代理要多一步

Selenium Grid 和 CI 机器上的每个浏览器会话,都从机器自己的 IP 发出。会话一多,网站就会对这个地址限流(HTTP 429),而依赖地区的测试永远只能看到机器所在国家的页面。

Selenium 通过浏览器选项设置代理,但 Chrome 只取其中的地址和端口:写在代理设置里的账号密码它不会用,SOCKS5 认证也不支持。所以带密码的代理,需要有人来应答它的 407 认证请求。

Selenium 已经内置了这一步:打开 WebDriver BiDi 后,driver.network.add_auth_handler(用户名, 密码) 会应答认证请求,我们实测包括代理的认证。用 ChromeDriver 153 时有个坑:代理还在要求输入密码时直接用经典的 driver.get(),会一直卡住;改用 browsing_context.navigate 打开就正常,之后的 driver.get() 会沿用已认证的凭据。另一个坑:写进 options.proxy 的代理,Selenium 还会交给 Selenium Manager 去下载 ChromeDriver,而且不带密码,所以代码改用 Chrome 的 --proxy-server 参数。

Selenium 推荐配置

可使用方向键横向滚动,阅读完整内容。

Selenium 推荐配置
比较项目选择原因
产品静态机房代理单 IP 最快最便宜,租期内固定,适合回归测试、Grid 和 CI
网站封服务器 IP 时动态住宅,低价线路真实家庭宽带 IP,US$1.50/GB 起,按流量计费
买几条 IP一个并发会话或一个 Grid 节点一条会话之间不共用地址和频率限制
国家测试要覆盖的市场;机房 IP 可选美国、加拿大、英国、德国、荷兰、日本、韩国、新加坡按地区变化的页面要从对应国家看
协议HTTPChrome 不支持 SOCKS5 认证
代理写在哪ChromeOptions 里的 --proxy-server 参数写进 options.proxy 的话,Selenium Manager 下载驱动也会走这个代理,而且不带密码
认证方式Selenium 自带的 BiDi 认证处理Selenium 4 内置,不用额外安装、不怕插件失效

下面的按钮会打开「静态机房代理」并选好「AI 与自动化」场景,付款前选好地区、租期、协议和「数量」(一次最多 100 个 IP)。

买哪种 Proxy302 代理

可使用方向键横向滚动,阅读完整内容。

买哪种 Proxy302 代理
比较项目静态 ISP动态住宅机房(数据中心)
你得到什么一条独享的家庭宽带 IP,租期内一直归你真实家庭宽带 IP:可轮换出口,也可在指定国家或城市保持粘性会话速度快的固定机房 IP,支持 HTTP / SOCKS5
价格按 IP 和租期,下单页实时报价低价线路 US$1.50/GB(100 GB 套餐 US$1.35/GB);优质线路 US$5.00/GB按 IP 和租期,单 IP 成本最低
最适合 Selenium需要长时间保持同一 IP 的登录测试测试或采集拦截服务器 IP 的网站回归测试、Grid、CI

价格以美元计。钱包充值一次,各类线路都从钱包付款;不会自动续费,想保留 IP 请在「我的资产」里续费。

5 步配好 Selenium 代理

  1. 先开海外网络环境

    国内网络无法直接连接海外代理:本机运行时先打开 控制台 → 连接工具 → 辅助工具;在服务器或 CI 上运行时,用境外机器。

  2. 选地区和租期

    点下面的按钮,打开「静态机房代理」(按 IP 和租期),场景已选「AI 与自动化」。在「连接配置」里选「地区」和「租期」,「协议」选 HTTP,「数量」按并发会话数填(一次最多 100 个),点「确认费用并生成」。

  3. 复制每条 IP

    在「我的资产」点「复制」,得到「地址:端口:用户名:密码」。地址、端口填进 PROXY_HOST、PROXY_PORT,用户名、密码填进 PROXY_USER、PROXY_PASS。

  4. 配置代理和认证处理

    ChromeOptions 里设 enable_bidi = True,并添加参数 --proxy-server=http://地址:端口(不要带用户名和密码);驱动启动后调用 driver.network.add_auth_handler(用户名, 密码)。

  5. 第一个页面用 BiDi 打开

    用 driver.browsing_context.navigate(context=driver.current_window_handle, url=..., wait="complete") 打开第一个页面,之后正常用 driver.get()。

    预期结果 api.ipify.org 显示的是代理 IP,不是你本机的 IP。

Selenium 带用户名密码的代理(Python)

可使用方向键横向滚动,阅读完整内容。

# pip install -U selenium   (Selenium Manager fetches a matching ChromeDriver)
import os
from selenium import webdriver
from selenium.webdriver.common.by import By

# From Proxy302 → My assets → Copy (host:port:user:password); use the HTTP endpoint
endpoint = f"{os.environ['PROXY_HOST']}:{os.environ['PROXY_PORT']}"

options = webdriver.ChromeOptions()
options.enable_bidi = True  # the auth handler below runs over WebDriver BiDi
# A Chrome flag, not options.proxy: Selenium Manager would fetch ChromeDriver through options.proxy, without the password
options.add_argument(f"--proxy-server=http://{endpoint}")

driver = webdriver.Chrome(options=options)
try:
    # Chrome ignores user:pass written into proxy settings, so answer the 407 challenge instead
    driver.network.add_auth_handler(os.environ["PROXY_USER"], os.environ["PROXY_PASS"])
    # Navigate over BiDi: a classic driver.get() can stall while the proxy challenge is pending
    driver.browsing_context.navigate(
        context=driver.current_window_handle,
        url="https://api.ipify.org?format=json",
        wait="complete",
    )
    print(driver.find_element(By.TAG_NAME, "body").text)  # the proxy's exit IP
finally:
    driver.quit()

2026-10-18 用 Selenium 4.41.0 和 4.51.0、Chromium / ChromeDriver 153 经本地带密码的代理实测 HTTP 和 HTTPS 页面:密码正确时页面能打开,密码错误时打不开;首次运行时 Selenium Manager 下载 ChromeDriver 不经过代理。

常见问题速查

driver.get() 卡住,最后报 Timed out receiving message from renderer

检查 第一个页面是不是在代理要求认证时用经典的 driver.get() 打开的?

处理 先注册 add_auth_handler,第一个页面用 browsing_context.navigate(..., wait="complete"),之后的 driver.get() 会沿用凭据。

报 407,或代理没生效

检查 启动驱动前设了 enable_bidi 吗?是不是把「用户名:密码@」写进了 --proxy-server?

处理 设置 options.enable_bidi = True,--proxy-server 只填 http://地址:端口,用户名和密码交给 add_auth_handler。

连接超时或 ERR_PROXY_CONNECTION_FAILED

检查 辅助工具开着吗?同一台机器上 curl -x http://用户名:密码@地址:端口 https://api.ipify.org 能通吗?

处理 国内网络先开辅助工具;curl 也不通时检查防火墙和出站规则,或把任务放到境外服务器上跑。

'WebDriver' object has no attribute 'network'

检查 装的 Selenium 是哪个版本?

处理 用 pip install -U selenium 升级;我们实测过 4.41.0 和 4.51.0。

第一次运行就报 Unable to obtain driver for chrome

检查 代理是不是写进了 options.proxy?这样 Selenium Manager 下载 ChromeDriver 也会走这个代理,而且不带密码。

处理 按上面的代码改用 --proxy-server 参数;国内网络下载驱动前先开辅助工具,仍然失败就用 Service('chromedriver 路径') 指定已下载好的驱动。

Selenium 代理常见问题

Selenium 怎么设置带用户名密码的代理 IP?

ChromeOptions 里用 --proxy-server 参数只填代理的「地址:端口」,打开 BiDi,调用 driver.network.add_auth_handler(用户名, 密码),第一个页面用 browsing_context.navigate 打开,上面的代码就是完整写法。

为什么把「用户名:密码@地址:端口」写进 Chrome 代理设置不行?

Chrome 不使用代理设置里嵌入的账号密码,SOCKS5 代理也不支持任何认证方式。

还需要 Selenium Wire 或代理插件吗?

不需要。认证处理是 Selenium 自带的功能,不用装额外的库或插件,也不用担心它们和浏览器版本不兼容。

国内用 Selenium 下载驱动总失败怎么办?

Selenium Manager 会联网下载 ChromeDriver。代理如果写在 options.proxy 里,它也会走这个不带密码的代理,下载被拒(407),这时设 SE_PROXY 也没用:浏览器选项里的代理优先。上面的代码用 --proxy-server 参数,只有 Chrome 走代理,驱动直接下载。国内网络先打开辅助工具再运行;仍然失败时,用 Service('chromedriver 路径') 指定已下载好的驱动。

动态住宅还是机房?

网站接受服务器 IP 就用机房,单 IP 最快最便宜;网站拦截或频繁验证服务器 IP 时用动态住宅。

来源与验证

10
  1. Selenium 文档:浏览器选项 — proxy

    官方文档 · 核对于:

  2. Chromium:Chrome 的代理支持说明

    官方文档 · 核对于:

  3. Selenium 文档:WebDriver BiDi 网络 — 认证处理

    官方文档 · 核对于:

  4. Selenium Python API:Network.add_auth_handler

    官方文档 · 核对于:

  5. Selenium 文档:Selenium Manager 的下载代理

    官方文档 · 核对于:

  6. MDN:429 Too Many Requests

    官方文档 · 核对于:

  7. Proxy302 价格页

    产品观察 · 核对于:

    动态住宅按 GB 价格以价格页和控制台为准(低价线路 US$1.50/GB,100 GB 套餐 US$1.35/GB;优质线路 US$5.00/GB;1 PTC = 1 美元)。静态 ISP 和机房 IP 按数量和租期实时报价。

  8. Proxy302 控制台 — 静态机房代理

    产品观察 · 核对于:

    选项名称、计费方式与限制以 2026-10-18 线上控制台为准:线路(优质 / 低价)、出口模式、地区、州 / 省、城市、协议(HTTP / SOCKS5)、数量(1–500)、租期、自动续租 IP(暂未开放),我的资产 → 复制 / 轮换 / 续费 / 复制给 AI。动态住宅入口为 proxy.proxy302.com:2222(HTTP)和 :3333(SOCKS5)。 2026-10-18 只读核对生产目录:静态机房 IP 在售 8 个国家——美国、加拿大、英国、德国、荷兰、日本、韩国、新加坡。

  9. 本地代理夹具实测

    本地示例 · 核对于:

    2026-10-18 在本地带密码的代理夹具上运行了本段代码(凭据错误时返回 407),分别打开 HTTP 页面和经 CONNECT 隧道的 HTTPS 页面;Selenium 4.41.0 和 4.51.0,Chromium / ChromeDriver 153.0.8010.12。加认证处理并用 BiDi 导航时,页面经代理正常打开;密码错误时打不开。代理还在要求认证时直接用经典的 driver.get(),会一直卡到页面加载超时;第一次 BiDi 导航认证成功后,后续 driver.get() 正常。Selenium Manager 缓存为空时,本段代码直接下载 ChromeDriver 并正常运行;同一脚本改用 options.proxy 时失败,因为 Selenium Manager 把下载请求发给了代理,却不带密码。

    本地实测只证明配置写法和认证路径正确,不代表能访问任何具体网站、国家或平台。

  10. Proxy302 控制台 → 连接工具 → 辅助工具

    产品观察 · 核对于:

    控制台「连接工具」页提供辅助工具(Windows / macOS 全局代理);「我的资产 → 复制给 AI」生成的说明写明:在中国大陆使用代理前需先打开辅助工具或已连上 VPN。

准备好接入了吗?

注册账号、一次充值,即可选择动态住宅、静态 ISP 或数据中心出口。动态住宅覆盖 195+ 国家与地区。