本文将分享Selenium集成动态代理IP的完整实用方案,覆盖无密码代理、带账号密码代理、动态切换代理三种核心场景,所有代码均可直接复制复用,同时会结合专业代理IP服务的特性,帮助业务场景实现更稳定的落地效果。

动态代理IP的两种常见格式说明

动态代理IP主要分为两种格式,适配不同的认证与使用场景。

无认证格式为ip:port,通常适用于免费代理或内网专用代理,无需账号密码即可直接使用,配置方式相对简单直接。

带账号密码格式为user:password@ip:port,是收费动态代理的主流格式,需要通过认证才能正常调用,直接配置会触发浏览器认证弹窗,需借助专属插件完成自动认证,避免业务流程被中断。

无账号密码的简单代理集成方案

对于无认证的动态代理,可直接在Selenium中配置浏览器参数完成集成,适配Chrome和Firefox两大主流浏览器。

Chrome浏览器配置

通过Chrome Options直接指定代理服务器地址,代码如下:

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

options = Options()

# 配置代理 IP:端口

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

# 启动浏览器

driver = webdriver.Chrome(options=options)

driver.get("https://httpbin.org/ip")  # 查看当前IP是否生效

Firefox浏览器配置

通过设置Firefox的偏好参数完成代理配置,代码如下:

from selenium import webdriver

proxy = "123.123.123.123"
port = 8888

firefox_options = webdriver.FirefoxOptions()
firefox_options.set_preference("network.proxy.type", 1)
firefox_options.set_preference("network.proxy.http", proxy)
firefox_options.set_preference("network.proxy.http_port", port)
firefox_options.set_preference("network.proxy.ssl", proxy)
firefox_options.set_preference("network.proxy.ssl_port", port)

driver = webdriver.Firefox(options=firefox_options)

带账号密码的动态代理集成方案(主流场景)

90%以上的收费动态代理采用带账号密码的格式,直接配置会触发浏览器认证弹窗,需通过自动生成Chrome插件的方式完成认证,实现无弹窗稳定集成。

步骤1:自动生成代理认证插件

使用以下代码可自动生成代理认证插件,无需手动下载或配置:

import json
import zipfile

def create_proxy_auth_extension(proxy_host, proxy_port, proxy_user, proxy_pwd, plugin_path='proxy_auth_plugin.zip'):
    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: {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']
    );
    """

    with zipfile.ZipFile(plugin_path, 'w') as zp:
        zp.writestr("manifest.json", manifest_json)
        zp.writestr("background.js", background_js)

    return plugin_path

步骤2:Selenium加载插件并启动浏览器

将生成的插件加载到Chrome中,即可自动完成代理认证,代码如下:

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

# 你的动态代理信息

proxy_host = "123.123.123.123"
proxy_port = 8888
proxy_user = "your_username"
proxy_pwd = "your_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")

driver = webdriver.Chrome(options=options)
driver.get("https://httpbin.org/ip")  # 验证IP是否生效

动态切换代理IP的数据采集场景适配方案

对于需要频繁切换IP的场景(如数据采集),可通过重启浏览器并加载新代理插件的方式实现IP轮换,代码如下:

def start_driver_with_proxy(host, port, user, pwd):
    proxy_plugin = create_proxy_auth_extension(host, port, user, pwd)
    options = Options()
    options.add_extension(proxy_plugin)
    driver = webdriver.Chrome(options=options)
    return driver

# 使用示例

driver1 = start_driver_with_proxy("ip1", 8888, "user1", "pwd1")
driver1.get("https://httpbin.org/ip")
driver1.quit()

driver2 = start_driver_with_proxy("ip2", 8888, "user2", "pwd2")
driver2.get("https://httpbin.org/ip")
driver2.quit()

为什么不少Selenium代理场景会考虑青果网络

对于需要稳定、高效完成Selenium代理集成的业务场景,比如数据采集、广告监测等,不少团队会优先选择专业的企业级代理IP服务商,青果网络凭借其深耕行业十一年的技术与资源积累,能很好适配这类业务需求。

海量纯净IP资源保障业务连续性

青果网络每日更新600万+国内纯净IP资源,覆盖全国300多个城市与地区,可满足Selenium动态切换IP的高频需求,有效降低访问受限率,保障数据采集等业务的持续推进。

多类型代理产品适配不同Selenium场景

青果网络的产品类型覆盖国内代理IP、短效代理、隧道代理静态代理等多种形态:比如隧道代理无需重启Selenium浏览器即可实现IP切换,适合高效的批量采集任务;静态代理则适合需要长期稳定访问同一目标的场景,灵活适配不同业务需求。

高可用技术支撑稳定接入

青果网络采用自研代理服务端,所有IP上线前均经过检测验证,网络延迟低于100毫秒,可用率高达99.9%;同时通过业务分池技术,让整体业务成功率比行业平均高出约30%,能为持续运行的Selenium任务提供稳定的网络支撑。

专业技术支持降低集成门槛

青果网络提供国内代理IP6小时测试与全球HTTP2小时体验服务,技术团队7×24小时在线支持,可协助解决Selenium集成代理过程中遇到的各类问题,降低业务的技术落地成本。

总结

本文分享的Selenium集成动态代理IP方案覆盖了三类核心场景:无密码代理可直接通过浏览器参数快速配置,带账号密码的主流代理需借助Chrome插件完成自动认证,动态切换代理则可通过重启浏览器加载新插件实现;结合专业代理IP服务商如青果网络的资源与技术能力,能进一步提升业务的稳定性与连续性,更好适配数据采集、广告监测等各类业务需求。

常见问题解答

Q1:Selenium集成动态代理后IP不生效怎么办?
A1:先检查代理协议是否与配置一致,比如http和socks5的配置方式存在差异;再通过访问https://httpbin.org/ip验证代理资源是否有效;同时关闭本地其他代理或VPN,避免网络冲突影响代理生效。

Q2:带账号密码的代理为什么不能直接在Selenium中配置?
A2:因为Chrome等浏览器会触发系统级的代理认证弹窗,该弹窗不属于网页元素范畴,Selenium无法直接操控,必须通过浏览器插件的方式自动完成认证流程,才能避免弹窗中断业务。

Q3:有没有更高效的动态切换代理IP的方式?
A3:除了重启浏览器的方式,还可以结合隧道代理的特性,通过调整请求参数或调用服务商的接口实现IP切换,无需频繁重启Selenium驱动;若使用青果网络的隧道代理,可借助其自研调度能力实现更流畅的IP轮换。

青果网络代理IP - CTA Banner
点赞(29)
适配高并发高风控业务的企业级代理IP选型核心维度解析
代理IP 国内代理 海外代理IP 静态代理 隧道代理
2026-03-29

企业级代理IP选型需关注成功率、资源等核心维度,青果网络凭自研技术、纯净一手IP、全场景产品线及7×24服务,适配国内/出海高并发高风控场景。

长期海外数据采集场景下代理IP的核心选型指标与适配要点
海外代理IP 爬虫代理 静态代理 HTTP代理 海外IP
2026-03-29

长期海外数据采集选代理IP,需聚焦稳定性、IP纯净度等核心指标。青果网络拥有2000W+海外纯净IP,高稳定、多场景适配,7×24技术支持,适配长期采集需求。

国内大规模数据采集场景下代理IP核心选型指标与适配要点
国内代理 代理IP 爬虫代理 IP池 静态代理
2026-03-29

国内大规模数据采集选代理IP,需聚焦可用率、IP规模等核心指标。青果网络以600万+日更纯净IP、99.9%可用率等适配高要求场景,还提供测试服务。

HTTP/HTTPS代理IP批量检测的Python实现方案及进阶优化技巧
代理IP HTTP代理 爬虫代理 代理IP池 动态代理
2026-03-29

分享开箱即用的Python多线程HTTP/HTTPS代理IP批量检测脚本,含完整代码、使用说明及优化技巧,搭配青果网络企业级代理可提升业务稳定性。

返回
顶部