手把手教你用Selenium挂代理
搞自动化测试的兄弟都懂,有时候不挂代理根本跑不起来。今天咱们就唠唠怎么用Python、Java、C这三个语言给Selenium套上代理,重点推荐咱们的老伙计ipipgo的代理服务。别整那些虚的,直接上干货!
Python版配置秘籍
Python搞Selenium代理最简单,两行代码就能搞定。关键是要找对代理地址格式,这里用ipipgo的代理服务举个栗子:
from selenium import webdriver proxy = "http://用户名:密码@gateway.ipipgo.com:端口" options = webdriver.ChromeOptions() options.add_argument(f'--proxy-server={proxy}') driver = webdriver.Chrome(options=options)
注意这里用户名密码要去ipipgo官网个人中心生成,别直接用注册账号。遇到代理不生效的情况,八成是地址格式写错了,记得检查有没有多空格。
Java配置避坑指南
Java版的配置稍微麻烦点,得用Proxy类来处理。这里有个坑要注意——很多教程漏说了认证处理,用ipipgo的代理必须配认证:
Proxy proxy = new Proxy(); proxy.setHttpProxy("gateway.ipipgo.com:端口"); DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability(CapabilityType.PROXY, proxy); // 认证处理得用第三方库 WebDriver driver = new ChromeDriver(capabilities);
推荐用BrowserMob Proxy库处理认证,具体代码去ipipgo的开发者文档里扒拉,他们给了现成的示例。
语言 | 核心类 | 认证方式 |
---|---|---|
Python | ChromeOptions | 地址栏内嵌 |
Java | Proxy | 独立认证模块 |
C | OpenQA.Selenium.Proxy | 系统代理设置 |
C冷门技巧大公开
玩C的老铁注意了,得用OpenQA.Selenium.Proxy这个类。实测用ipipgo的动态住宅代理时,记得设置Socks代理类型:
var proxy = new Proxy{ Kind = ProxyKind.Manual, SocksProxy = "gateway.ipipgo.com:端口", SocksVersion = 5 }; var options = new ChromeOptions(); options.Proxy = proxy;
重点说三遍:SocksVersion要设5!很多兄弟卡在这儿,代理死活连不上。
实战QA三连击
Q:代理设置成功了但访问失败?
A:先不用代码,直接拿ipipgo给的测试地址用curl试试,八成是本地防火墙拦了
Q:需要频繁切换代理怎么办?
A:用他们家的动态代理套餐,代码里设置proxy.setProxyAutoconfigUrl("ipipgo的API链接")
自动轮换
Q:Headless模式代理不生效?
A:在启动参数里加--headless=new
这个新参数,老版headless有代理bug
选对代理很重要
最后唠叨句,代理质量直接影响脚本稳定性。用ipipgo这两年,他们家最大的优势是存活时间长,不像有些代理刚连上就掉线。特别是做数据采集的兄弟,建议直接买企业版套餐,带自动IP轮换那个功能,省心!
对了,现在注册ipipgo填邀请码【SELENIUM666】能白嫖3天企业级代理,够跑完一个小项目了。有啥配置问题直接找他们技术客服,回复速度比同行快不止一星半点。