
把代理IP塞进Python裤兜的实战操作
搞爬虫的老司机都知道,Requests库就像开挖掘机的钥匙,但没代理IP加持的话,分分钟被工地保安(反爬机制)逮住。今天咱们就来唠唠怎么把ipipgo家的代理IP装进Python裤兜里。
import requests
代理IP的正确打开姿势
proxies = {
"http": "http://user:password@gateway.ipipgo.com:9020",
"https": "http://user:password@gateway.ipipgo.com:9020"
}
response = requests.get("https://目标网站", proxies=proxies)
注意这里用户名密码要换成自己在ipipgo后台拿到的认证信息,端口号也别照抄,每个套餐给的通道都不一样。我上次就栽在这,对着文档抄端口结果白瞎半小时。
给Socks5代理上发条
有些特殊场景得用socks5协议,这时候得给Requests装个小马达。先装依赖库:
pip install requests[socks]
配置姿势稍微有点不同:
proxies = {
'http': 'socks5://user:password@gateway.ipipgo.com:9021',
'https': 'socks5://user:password@gateway.ipipgo.com:9021'
}
这里有个坑,ipipgo的socks端口和http端口是分开的,别搞混了。我之前把9020和9021用反了,结果程序卡得跟拖拉机似的。
动态IP的游击战术
用动态住宅代理的话,记得在代码里加个随机切换的机关:
import random
def get_random_proxy():
proxy_list = [
"http://user:password@gateway1.ipipgo.com:9020",
"http://user:password@gateway2.ipipgo.com:9020",
"http://user:password@gateway3.ipipgo.com:9020"
]
return {'http': random.choice(proxy_list), 'https': random.choice(proxy_list)}
response = requests.get(url, proxies=get_random_proxy())
这样每次请求都换马甲,反爬系统就认不出你了。不过要注意ipipgo的动态套餐是按流量计费的,别手滑写死循环把套餐用超了。
QA急救包
Q:代理连不上咋整?
A:先检查三件套:①账号密码有没有打错 ②端口号对不对应协议 ③本地网络是否允许出站
Q:速度像蜗牛爬怎么办?
A:试试切到TK专线,或者换静态住宅IP。有时候地区节点选得不对也会卡,比如爬亚洲站点别选欧洲节点。
Q:需要同时开多个爬虫怎么办?
A:上ipipgo的独享静态套餐,每个爬虫分配独立IP,避免IP池打架。
ipipgo套餐选择指南
| 套餐类型 | 适用场景 | 价格 |
|---|---|---|
| 动态住宅(标准) | 日常数据采集 | 7.67元/GB/月 |
| 动态住宅(企业) | 高频访问需求 | 9.47元/GB/月 |
| 静态住宅 | 长期固定业务 | 35元/IP/月 |
新手建议先用动态标准版练手,业务量上来了再切企业版。他们家的API提取确实方便,我写了个自动续IP的脚本,配合crontab用着挺顺溜。
最后唠叨句,遇到复杂场景直接找客服要1v1方案,比自己瞎折腾省时间。上次有个跨国采集需求,他们给配的跨境专线直接省了30%流量费。

