本文将分享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轮换。