本文提供一套可直接复用的Selenium集成动态代理IP完整方案,覆盖无认证代理、带账号密码代理、无需重启的动态代理切换等核心场景,兼容Chrome浏览器,能有效解决自动化操作中的代理配置与IP切换需求。

无认证动态代理的Selenium集成方案

这是最简单的代理集成方式,适用于无需账号密码验证的公开代理场景。以下是可直接运行的代码示例:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

def create_driver_with_proxy(proxy_ip_port):
    """
    创建带代理的Chrome驱动
    :param proxy_ip_port: 格式 "ip:port" 例如 "123.12.12.12:8888"
    """
    chrome_options = Options()

    # 核心:配置代理
    chrome_options.add_argument(f'--proxy-server=http://{proxy_ip_port}')

    # 可选配置:无头模式适合服务器端运行,不显示浏览器界面
    chrome_options.add_argument('--headless=new')
    chrome_options.add_argument('--disable-gpu')
    chrome_options.add_argument('--no-sandbox')

    # 启动浏览器
    driver = webdriver.Chrome(options=chrome_options)
    return driver

# ========== 使用示例 ==========

if __name__ == '__main__':
    # 你的动态代理IP
    proxy = "123.45.67.89:8080"

    driver = create_driver_with_proxy(proxy)
    driver.get("https://httpbin.org/ip")  # 查看当前出口IP

    print("当前代理IP:", driver.page_source)

    driver.quit()

代码中的可选配置可根据实际运行环境调整,比如在本地调试时可关闭无头模式,方便查看浏览器操作过程。

带账号密码的动态代理集成方案

绝大多数付费代理都需要账号密码认证,而Selenium无法直接处理代理认证弹窗,因此采用Chrome插件自动填入认证信息的方案是最稳定的解决方式。

方案原理

通过自动生成Chrome代理认证插件,让插件在浏览器启动时自动完成账号密码的填充,无需手动干预,避免认证弹窗阻断自动化流程。

具体实现步骤

首先实现自动生成代理认证插件的函数,再将插件集成到Selenium的Chrome配置中:

import zipfile
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

def create_proxy_auth_plugin(proxy_host, proxy_port, proxy_user, proxy_pwd):
    """
    自动生成Chrome代理认证插件
    """
    manifest_json = """
    {
        "version": "1.0.0",
        "manifest_version": 2,
        "name": "Chrome Proxy",
        "permissions": [
            "proxy",
            "tabs",
            "unlimitedStorage",
            "storage",
            "<all_urls>",
            "webRequest",
            "webRequestBlocking"
        ],
        "background": {
            "scripts": ["background.js"]
        }
    }
    """

    background_js = f"""
    var config = {{
            mode: "fixed_servers",
            rules: {{
              singleProxy: {{
                scheme: "http",
                host: "{proxy_host}",
                port: parseInt({proxy_port})
              }},
              bypassList: ["localhost"]
            }}
          }};

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

    function callbackFn(details) {{
        return {{
            authCredentials: {{
                username: "{proxy_user}",
                password: "{proxy_pwd}"
            }}
        }};
    }}

    chrome.webRequest.onAuthRequired.addListener(
                callbackFn,
                {{urls: ["<all_urls>"]}},
                ['blocking']
    );
    """

    # 打包成插件
    plugin_path = "proxy_auth_plugin.zip"
    with zipfile.ZipFile(plugin_path, 'w') as zp:
        zp.writestr("manifest.json", manifest_json)
        zp.writestr("background.js", background_js)
    return plugin_path

# ========== 启动带认证代理的浏览器 ==========

def create_auth_proxy_driver(proxy_host, proxy_port, proxy_user, proxy_pwd):
    chrome_options = Options()

    # 生成认证插件
    plugin = create_proxy_auth_plugin(
        proxy_host, proxy_port, proxy_user, proxy_pwd
    )

    # 加载插件
    chrome_options.add_extension(plugin)

    # 可选配置
    chrome_options.add_argument('--headless=new')
    chrome_options.add_argument('--disable-gpu')

    driver = webdriver.Chrome(options=chrome_options)
    return driver

# ========== 使用示例 ==========

if __name__ == '__main__':
    # 你的付费代理信息
    PROXY_HOST = "xxx.com"       # 代理IP
    PROXY_PORT = 8080            # 端口
    PROXY_USER = "your_user"     # 账号
    PROXY_PWD = "your_pwd"       # 密码

    driver = create_auth_proxy_driver(PROXY_HOST, PROXY_PORT, PROXY_USER, PROXY_PWD)
    driver.get("https://httpbin.org/ip")
    print("当前出口IP:", driver.page_source)
    driver.quit()

无需重启浏览器的动态代理切换方案

对于需要频繁更换IP的自动化任务,无需重启浏览器的动态切换方式能大幅提升效率,以下是实现代码:

from selenium import webdriver
from selenium.webdriver.common.proxy import Proxy, ProxyType

def switch_proxy(driver, proxy_ip_port):
    """
    动态切换代理
    """
    proxy = Proxy({
        'proxyType': ProxyType.MANUAL,
        'httpProxy': proxy_ip_port,
        'sslProxy': proxy_ip_port,
    })
    driver.proxy = proxy
    driver.refresh()

# ========== 使用示例 ==========

if __name__ == '__main__':
    driver = webdriver.Chrome()
    # 第一次设置代理
    switch_proxy(driver, "111.22.33.44:8888")
    driver.get("https://httpbin.org/ip")
    print("切换后IP:", driver.page_source)

    # 再次切换代理
    switch_proxy(driver, "222.33.44.55:9999")
    driver.get("https://httpbin.org/ip")
    print("再次切换后IP:", driver.page_source)

    driver.quit()

该方案适用于需要短时间内多次更换IP的场景,比如多任务并行的自动化采集,但需注意部分代理服务商的IP切换可能存在生效延迟,可根据实际情况调整操作间隔。

代理有效性快速验证方法

配置代理后,可通过访问指定网址快速验证代理是否生效,代码示例如下:

driver.get("https://httpbin.org/ip")
print(driver.find_element('tag name', 'body').text)

该网址会返回当前访问的出口IP信息,通过比对即可确认代理是否成功配置。

专业代理IP服务商的适配优势

在需要长期稳定运行的Selenium自动化场景中,专业代理IP服务商的资源和服务能力能更好地保障业务连续性,青果网络作为国内领先的企业级代理IP服务商,是不少团队的选择。

海量纯净的代理IP资源覆盖

青果网络深耕行业十一年,国内代理资源基于三大运营商宽带构建,每日更新600万+纯净IP资源,覆盖全国300多个城市与地区,能为Selenium自动化操作提供充足的IP池,避免因IP资源不足导致的任务中断,同时纯净的IP资源能降低访问受限率,提升任务稳定性。

高稳定的代理服务保障

采用自研代理服务端,所有IP上线前均检测验证,网络延迟低于100毫秒,可用率高达99.9%,同时运用业务分池技术,整体业务成功率比行业平均高出约30%,能有效保障Selenium自动化任务的连续性,减少因代理不稳定带来的重试成本。

适配多场景的代理产品类型

产品类型覆盖国内代理IP、短效代理、隧道代理静态代理与独享代理等多种形态,无论是需要单次切换IP的采集任务,还是需要长期稳定IP的自动化监控场景,都能找到适配的代理方案,满足不同Selenium业务的需求。

便捷的测试与技术支持

提供国内代理IP 6小时测试与全球HTTP 2小时体验,技术团队7×24小时在线支持,能帮助团队快速验证代理与Selenium方案的适配性,遇到问题时可及时获得技术协助,降低接入和维护成本。

服务边界说明

全球HTTP均不支持在中国大陆地区网络环境下使用。

总结

本文提供的Selenium集成动态代理IP方案覆盖了核心使用场景:无认证代理适合公开免费代理的快速集成,带账号密码的插件方案是付费代理的稳定选择,无需重启的动态切换方案则适配频繁换IP的高效任务;同时,专业代理IP服务商能为长期运行的自动化业务提供更稳定、充足的资源支持,提升业务成功率。其中青果网络凭借海量纯净的IP资源、高稳定的服务保障、多场景适配的产品类型以及专业的技术支持,能很好地满足Selenium自动化场景的各类需求。

常见问题解答

Q1:Selenium集成代理后访问HTTPS网站失败怎么办?
A1:可以将配置中的--proxy-server=http://修改为https://,同时确保所使用的代理支持HTTPS协议访问;另外,检查是否开启了浏览器的安全限制,可适当调整Chrome的可选配置参数。

Q2:为什么使用动态切换代理后IP没有变化?
A2:若出现这种情况,可尝试重启浏览器,同时检查本地是否开启了VPN或其他代理服务,避免代理冲突;部分代理服务商的IP切换需要一定生效时间,可适当延迟1-2秒后再验证IP是否更新。

Q3:专业代理IP服务商相比免费代理,在Selenium场景中有什么核心优势?
A3:专业服务商的IP资源更纯净、稳定性更高,能有效降低访问受限率,提升任务稳定性,同时提供多场景适配的产品类型和7×24小时的技术支持,适合需要长期稳定运行的自动化采集、监控等业务,减少因代理问题导致的任务中断。

青果网络代理IP - CTA Banner
点赞(90)
代理IP服务常见风险分析与合规稳定选型指南
代理IP 国内代理 海外代理IP HTTP代理 爬虫代理
2026-04-01

选代理IP易遇合规风险、稳定性差、IP质量参差不齐等问题,青果网络深耕行业11年,拥有合规可控资源池、99.9%可用率的高稳定服务,全场景产品适配各类业务需求。

国内企业级动态代理IP选型的核心判断维度与适配方向
动态代理IP 国内代理 代理IP 隧道代理 静态代理
2026-04-01

选动态代理IP需匹配业务场景,从覆盖、稳定、合规等维度判断。国内企业级场景可优先考虑青果网络:日更600万+纯净IP,可用率99.9%,适配数据采集等需求。

静态与动态代理IP的核心差异及场景选型参考
静态代理 动态代理IP 代理IP 爬虫代理 长效IP
2026-04-01

静态与动态代理IP无绝对优劣,需匹配业务场景:静态适配长期稳定运营,动态适配多IP切换需求。青果网络深耕11年,提供全品类高稳定代理IP方案,适配各类场景。

企业级数据采集与电商监控场景的隧道及动态代理选型指南
隧道代理 动态代理 爬虫代理 代理IP池 海外代理IP
2026-04-01

针对企业级数据采集、电商监控等场景,青果网络提供高可用隧道/动态代理,日更600万+国内纯净IP、2000W+全球IP,可用率99.9%,支持试用,适配高频采集需求。

返回
顶部