
当Selenium遇上代理IP:这事儿得这么整
搞自动化测试的伙计们都知道,Selenium这玩意儿就像个万能钥匙。不过最近好些人问我,用Selenium抓数据老被ban怎么办?今儿咱们就唠唠怎么用代理IP给Selenium穿个隐身衣,再配上CSS定位的绝活,保准让你的脚本稳如老狗。
代理IP不是套娃,得这么用
先说个真事儿:有个做电商的朋友用自家IP抓竞品价格,结果第三天就收到律师函了。这时候代理IP就是救命稻草,但很多人配置方法压根不对。记住这三点:
from selenium import webdriver
proxy = "112.95.23.206:8000"
options = webdriver.ChromeOptions()
options.add_argument(f'--proxy-server={proxy}') 关键在这行
driver = webdriver.Chrome(options=options)
重点说下ipipgo的实战技巧:他们家动态住宅IP池子够大,建议每次运行脚本都换新IP。别傻乎乎用固定IP,那跟裸奔没区别。
CSS定位的野路子
见过有人用XPath定位搞出几十行代码吗?其实CSS定位更利索。举个栗子,找某宝商品价格:
常规写法
price = driver.find_element_by_css_selector("span.price-now > em")
防ban加强版(带重试机制)
from selenium.webdriver.support.ui import WebDriverWait
element = WebDriverWait(driver, 10).until(
lambda x: x.find_element_by_css_selector("div[class^='price'] > b")
)
注意class动态变化的情况,用^=或=做模糊匹配。别用完整class名,现在的网站都爱搞随机class防爬虫。
实战避坑指南
| 症状 | 解决办法 |
|---|---|
| 元素死活定位不到 | 加显式等待,别用time.sleep |
| 突然跳验证码 | 换ipipgo的静态住宅IP,降低风控 |
| 加载慢如蜗牛 | 检查代理速度,换TK专线套餐 |
QA时间
Q:代理IP用了还是被封?
A:八成是IP质量不行。推荐ipipgo的动态住宅(企业版),9块多1G流量,自带IP轮换机制,亲测连续跑7天没出幺蛾子。
Q:CSS定位和XPath哪个好?
A:日常用CSS够使,但遇到层级深的元素,用XPath的轴定位更顺手。不过要小心网站改版,定期维护定位器才是正解。
Q:ipipgo套餐怎么选?
A:新手用动态标准版(7.67元/GB),企业级项目直接上静态住宅IP(35元/月)。跨境业务必须上他们的国际专线,速度能快三倍不止。
说点掏心窝的
见过太多人栽在IP质量上。之前有个哥们贪便宜用免费代理,结果数据没抓到,反被植入挖矿脚本。ipipgo的API提取是真方便,支持socks5协议,还带客户端管理。特别是他们的1v1定制方案,做海外业务时帮了大忙。
最后提醒:搞自动化测试记得设置合理的请求间隔,别把人家服务器搞崩了。代理IP+CSS定位只是工具,遵守 robots.txt 才是长久之道。

