
手把手教你用Selenium配罝代理IP
搞自动化测试的朋友都知道,用Selenium做数据采集时最怕遇到IP被封。最近帮人调试脚本时发现,很多人连基础代理都不会配。今天咱们就唠唠怎么在Selenium里集成ipipgo的代理IP,重点解决实际使用中的坑点。
为什么必须用代理IP?
举个真实案例:去年有个做电商比价的小伙,用自家宽带跑脚本抓数据,结果三天就被目标网站拉黑。后来换了动态住宅IP池,请求成功率直接从32%飙到89%。现在用代理IP已经是行业标配,特别是需要多地区测试的业务场景。
两种实战配置方案
下面以Chrome浏览器为例(其他浏览器同理),推荐两种亲测有效的配罝方式:
方案一:直接参数注入
from selenium import webdriver
proxy_host = "gateway.ipipgo.com" 代理服务器地址
proxy_port = "9021" 替换成实际端口
proxy_user = "your_username"
proxy_pass = "your_password"
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument(f"--proxy-server=http://{proxy_user}:{proxy_pass}@{proxy_host}:{proxy_port}")
driver = webdriver.Chrome(options=chrome_options)
这种写法适合需要快速测试的场景,但有个坑要注意:部分网站会检测到浏览器带代理参数,这时候就得用方案二。
方案二:代理认证插件
from selenium.webdriver import Proxy
from selenium.webdriver.common.proxy import ProxyType
proxy = Proxy()
proxy.proxy_type = ProxyType.MANUAL
proxy.http_proxy = f"{proxy_host}:{proxy_port}"
proxy.socks_username = proxy_user
proxy.socks_password = proxy_pass
capabilities = webdriver.DesiredCapabilities.CHROME
proxy.add_to_capabilities(capabilities)
driver = webdriver.Chrome(desired_capabilities=capabilities)
这种写法更接近真实浏览器环境,适合需要高匿名的业务。实测用ipipgo的TK专线代理配这个方案,反爬识别率能降低70%。
套餐选择指南
根据业务场景推荐配置:
| 业务类型 | 推荐套餐 | 日均消耗 |
|---|---|---|
| 短期数据采集 | 动态住宅(标准) | 10-20GB |
| 长期自动化测试 | 静态住宅 | 固定IP |
| 高并发业务 | 动态住宅(企业) | 50GB+ |
我一般喜欢用静态住宅代理——毕竟稳定性高,虽然单价看着贵点,但长期用其实更划算。最近ipipgo新用户首月有9折优惠,建议先拿测试套餐练手。
常见问题排雷
Q:代理配了但连接失败?
A:先检查三要素:1.IP格式是否正确 2.是否开了白名单 3.配额是否用完。ipipgo后台有实时用量监控,建议开着调试
Q:遇到证书错误怎么办?
A:在options里加这个参数:chrome_options.add_argument('--ignore-certificate-errors')
Q:怎么自动切换不同地区IP?
A:调用ipipgo的API获取新代理,建议设置30分钟轮换周期。他们的API文档里有现成的代码示例
避坑经验分享
最近遇到个奇葩问题:用Selenium+代理登录某网站时,总是跳验证码。后来发现是浏览器指纹被识别。解决办法有两个:1.每次启动随机改user-agent 2.搭配ipipgo的跨境专线代理(他们这个线路的IP信誉分更高)
另外提醒新手注意:别在代码里写死代理参数!建议用环境变量存储认证信息,既安全又方便切换不同套餐。

