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

使用Selenium与Docker配置代理遇到问题求助

问题解决:Chrome忽略代理设置的原因及修复

你的代码里有个关键错误:配置好代理的chrome_options变量根本没传给webdriver.Remote,反而在参数里重新创建了一个空的webdriver.ChromeOptions(),导致所有代理、无头模式这些配置完全没生效。

修正后的代码

def get_chrome_driver(proxy):
    proxy = str(proxy)
    chrome_options = webdriver.ChromeOptions()
    chrome_options.add_argument(f'--proxy-server={proxy}')  # 注意参数名是--proxy-server,不是--proxy
    chrome_options.add_argument("--no-sandbox")
    chrome_options.add_argument("--headless=new")  # 新版Chrome推荐用该参数,旧--headless存在兼容性问题
    chrome_options.add_argument("--disable-gpu")

    driver = webdriver.Remote(
        command_executor='http://chrome:4444/wd/hub',
        options=chrome_options  # 传入配置好的chrome_options,而非新建空对象
        )

    return driver

额外排查点

  • 代理格式要正确:必须带上协议前缀,比如http://192.168.1.1:8080或socks5://10.0.0.2:1080,不能只传ip:port
  • 检查Docker网络:确保Python爬虫容器、selenium-chrome容器、代理服务器在同一个Docker网络内,否则容器间无法通信
  • 若代理需用户名密码认证,需额外添加--proxy-auth=用户名:密码参数,或配置对应Chrome扩展

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 07:15:36