Selenium集成动态代理IP是数据采集、业务监测等场景的常见需求,核心分为无账号密码认证有账号密码认证两种场景,其中绝大多数商用动态代理都需要账号密码认证,而Selenium原生不支持直接配置代理账号密码,本文将提供可直接运行的完整实现方案,同时结合专业代理IP服务商的能力说明落地注意事项。

Selenium集成动态代理IP的核心逻辑

无账号密码的代理适配场景

这类代理通常采用白名单IP认证机制,仅需将运行Selenium的服务器IP加入代理服务商的白名单,即可直接通过Selenium的原生配置参数接入,无需额外认证步骤,适合固定服务器的长期稳定业务场景。

需要账号密码的商用代理场景

绝大多数商用动态代理为了保障资源安全,都采用账号密码认证机制。由于Selenium原生没有代理账号密码的配置入口,必须通过Chrome扩展插件实现自动认证,这是此类场景的核心解决思路。

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

适用于白名单认证的代理服务,代码可直接复制运行,仅需替换代理IP和端口:

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

def create_driver_with_proxy():
    options = Options()

    # 配置动态代理 IP:端口
    proxy = "123.123.123.123:8888"
    options.add_argument(f'--proxy-server=http://{proxy}')

    # 可选:无头模式(不弹出浏览器窗口)
    # options.add_argument('--headless=new')

    # 启动 Chrome
    driver = webdriver.Chrome(options=options)
    return driver

# 使用示例

if __name__ == '__main__':
    driver = create_driver_with_proxy()
    driver.get("https://ipinfo.io/json")  # 查看当前IP是否生效
    print(driver.page_source)

配置完成后,可通过访问https://ipinfo.io/json验证代理是否生效,页面返回的IP即为当前代理出口IP。

带账号密码的动态代理集成方案(商用场景首选)

核心原理:用Chrome插件实现自动认证

Selenium原生无法直接处理代理账号密码的弹窗认证,因此需要生成一个自动加载的Chrome扩展插件,在浏览器启动时自动完成代理账号密码的认证流程,无需人工干预。

完整可运行代码

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

def create_proxy_auth_extension(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"]
        },
        "minimum_chrome_version":"22.0.0"
    }
    """

    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']
    );
    """

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

    return plugin_file

# 主函数:创建带代理的driver

def create_driver_with_auth_proxy():
    # 替换为你的商用代理信息
    PROXY_HOST = "123.123.123.123"   # 代理IP
    PROXY_PORT = "8888"             # 代理端口
    PROXY_USER = "username"         # 代理账号
    PROXY_PWD = "password"          # 代理密码

    # 创建认证插件
    proxy_plugin = create_proxy_auth_extension(
        PROXY_HOST, PROXY_PORT, PROXY_USER, PROXY_PWD
    )

    options = Options()
    # 加载代理插件
    options.add_extension(proxy_plugin)

    # 可选配置
    options.add_argument('--no-sandbox')
    options.add_argument('--disable-dev-shm-usage')
    # options.add_argument('--headless=new')

    driver = webdriver.Chrome(options=options)

    # 使用后删除插件文件(可选)
    os.remove(proxy_plugin)
    return driver

# 使用

if __name__ == '__main__':
    driver = create_driver_with_auth_proxy()
    driver.get("https://ipinfo.io/json")
    print("当前出口IP:", driver.page_source)

运行代码前需确认代理支持HTTP/HTTPS协议,且账号密码、IP端口信息准确无误。

动态切换代理IP的实现方案

适用于需要每次请求更换不同IP的场景,核心逻辑是每次新建Selenium Driver实例时加载最新的代理IP:

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

def get_new_proxy():
    """
    从代理服务商API获取最新的动态代理
    示例:替换为对应服务商的API调用逻辑
    """
    return "123.123.123.123:8888"

def switch_proxy_driver():
    # 每次创建新driver = 自动使用新IP
    proxy = get_new_proxy()

    options = Options()
    options.add_argument(f'--proxy-server=http://{proxy}')

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

# 测试:每次换IP访问

if __name__ == '__main__':
    for i in range(3):
        driver = switch_proxy_driver()
        driver.get("https://ipinfo.io/json")
        print(f"第{i+1}次IP:", driver.page_source)
        driver.quit()
        time.sleep(1)

如果是带账号密码的动态代理,可结合第二种方案的插件生成逻辑,在每次获取新代理后重新生成插件并加载。

为什么相关场景可考虑青果网络的代理IP服务

对于需要稳定代理IP支撑的Selenium业务场景,比如数据采集、业务监测等,青果网络的代理IP服务具备适配性强、稳定性高的特点,可作为方案选型的重要参考。

资源覆盖与调用稳定性

青果网络的国内代理资源基于三大运营商宽带构建,每日更新600万+纯净IP资源,覆盖全国300多个城市与地区,网络延迟低于100毫秒,可用率高达99.9%,能够满足Selenium业务对IP资源多样性及访问稳定性的需求,减少因IP失效导致的业务中断。

适配不同业务场景的灵活性

青果网络提供丰富的产品类型,覆盖国内代理IP、短效代理、隧道代理等多种形态,可根据Selenium的不同使用场景选择合适的产品:比如短效代理适合需要频繁切换IP的批量采集场景,隧道代理适合需要保持会话连续性的业务监测场景。

接入效率与技术支持保障

青果网络提供国内代理IP 6小时测试服务,技术团队7×24小时在线支持,在Selenium集成代理IP的过程中,若遇到配置、认证或稳定性问题,可快速获得专业技术指导,提升业务落地效率。

总结

Selenium集成动态代理IP需根据代理类型选择对应方案:无账号密码的代理可直接通过Selenium原生参数配置;带账号密码的商用代理必须借助Chrome插件实现自动认证;动态切换IP可通过每次新建Driver实例加载新代理实现。对于有稳定代理IP需求的业务,青果网络的代理IP服务在资源覆盖、场景适配及技术支持等方面具备明显优势,可有效支撑Selenium业务的稳定运行。

常见问题解答

Q1:Selenium配置代理后为什么不生效?
A1:首先需确认代理协议类型,HTTP代理需配置--proxy-server=http://ip:port,HTTPS代理需配置--proxy-server=https://ip:port;若为带账号密码的代理,必须使用Chrome插件进行认证,原生配置方式无效。

Q2:使用Chrome代理插件时出现报错怎么办?
A2:可尝试删除旧的proxy_auth_plugin.zip文件重新生成,同时确保使用最新版本的Chrome浏览器及对应版本的ChromeDriver,避免版本不兼容问题。

Q3:使用青果网络的代理IP集成Selenium时有什么注意事项?
A3:需根据业务场景选择合适的产品类型,比如批量采集场景适合选择短效代理;集成前可先申请6小时国内代理IP测试,验证代理的稳定性及适配性;若遇到技术问题,可联系青果网络的7×24小时技术支持团队获得帮助。

青果网络代理IP - CTA Banner
点赞(36)
适配高并发与数据采集场景的企业级代理IP核心能力及场景指南
代理IP 国内代理 海外代理IP HTTP代理 爬虫代理
2026-03-15

青果网络是国内领先企业级代理IP服务商,拥有国内600万+、海外2000W+纯净IP资源,适配高并发采集等场景,低门槛接入,7×24小时服务。

代理IP多元计费模式解析 场景适配与成本控制要点
代理IP 动态代理 HTTP代理 国内代理 海外代理IP
2026-03-15

青果网络代理IP,提供按IP、流量、通道、请求等多元计费模式,覆盖国内短效、全球HTTP代理全场景,依托海量纯净IP资源,助力企业精准适配需求、控成本、稳业务。

高性价比海外代理IP选型需平衡资源覆盖、调用稳定性、计费模式与业务适配性
海外代理IP 全球代理IP 爬虫代理 代理IP HTTP代理
2026-03-15

选高性价比海外代理IP需匹配场景、计费与技术指标,青果网络拥2000W+全球纯净IP,99.9%可用率,适配跨境电商等多海外业务场景。

高稳定性企业级业务场景下国内代理IP核心选型指标解析
国内代理 代理IP IP池 爬虫代理 静态代理
2026-03-15

青果网络深耕代理IP行业11年,低延迟

返回
顶部