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

如何在Selenium中使用代理?Selenium无法通过代理连接网站如何解决

问题排查
  • 配置传递顺序错误:你在初始化webdriver.Chrome()之后才定义ChromeOptions参数,所有代理、UA的配置都没有被传入浏览器实例,相当于配置完全未生效。
  • 语法缩进错误:gather_proxy()函数的函数体没有正确缩进,运行时会直接抛出语法错误,无法正常读取代理列表。
  • 代理有效性&格式问题:需要确认proxies.txt中存储的代理格式是否符合Chrome要求,正确格式为协议://IP:端口(如http://192.168.1.1:8080、socks5://192.168.1.1:1080),同时要提前验证代理本身可以正常访问目标网站,大量公开免费代理本身处于不可用状态。
  • 你导入了undetected_chromedriver但实际使用的是原生Selenium的Chrome驱动,两者的配置逻辑存在差异,如果要使用undetected_chromedriver需要对应调整初始化方式。
正确配置方案

修正后的原生Selenium代理配置代码如下:

from fake_useragent import UserAgent
from time import sleep
from selenium import webdriver
import random

def gather_proxy():
    proxies = []
    # 注意文件路径要对应本地实际存储位置
    with open('Source/proxies.txt', 'r', encoding='UTF-8') as file:
        lines = file.readlines()
        for line in lines:
            proxies.append(line.strip())
    return proxies

if __name__ == '__main__':
    ua = UserAgent()
    userAgent = ua.random
    # 先完成所有配置项定义
    chrome_options = webdriver.ChromeOptions()
    proxy = random.choice(gather_proxy())
    chrome_options.add_argument(f'user-agent={userAgent}')
    chrome_options.add_argument(f'--proxy-server={proxy}')
    chrome_options.add_experimental_option('prefs', {
        'credentials_enable_service': False,
        'profile': {
            'password_manager_enabled': False
        }
    })
    # 初始化浏览器实例时传入配置参数
    driver = webdriver.Chrome(options=chrome_options)
    try:
        driver.get('https://www.wieistmeineip.de/')
        sleep(30)
    finally:
        driver.quit()

补充说明:

  • 如果使用带用户名密码验证的代理,需要额外配置Chrome的代理扩展,或者使用selenium-wire等第三方库简化配置。
  • Chrome不支持运行中动态切换代理,每次更换代理都需要重新初始化浏览器实例。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 01:09:03