
手把手教你用Python玩转代理IP接口
搞爬虫的兄弟应该都懂,现在很多网站对IP访问频率卡得死。上周我帮朋友搞电商数据采集,单用本机IP没半小时就被封,这时候就得靠代理IP来分散请求压力。今天咱们就拿ipipgo家的API来实战,教你怎么用Python快速接入。
选对代理类型很重要
市面上的代理IP五花八门,选型就像配电脑——得看具体需求。根据我这三年踩坑经验整理了个对比表:
| 业务场景 | 推荐类型 | 优点 |
|---|---|---|
| 高频数据采集 | 动态住宅(标准) | 7.67元/GB的价格真香 |
| 长期稳定登录 | 静态住宅 | 固定IP不怕掉线 |
| 企业级数据中台 | 动态住宅(企业) | 9.47元/GB带专属通道 |
Python对接四步走
以ipipgo的动态住宅套餐为例,咱们先到官网生成API密钥(注意保管好别泄露)。这里有个小技巧:在控制台把IP有效期设为3-5分钟,既能保证稳定性又节省流量。
import requests
替换成你自己的API密钥
API_KEY = "your_api_key_here"
def get_proxy():
try:
res = requests.get(
f"http://api.ipipgo.com/get?key={API_KEY}&type=dynamic",
timeout=10
)
if res.status_code == 200:
return res.json()['proxy']
return None
except Exception as e:
print(f"获取IP出错啦:{str(e)}")
return None
使用示例
proxy = get_proxy()
print(f"新鲜出炉的代理IP:{proxy}")
请求失败怎么办?
实战中经常遇到代理突然失效的情况,这里教你们个双重保险的写法。我一般在项目里会加个重试机制,像这样:
from retrying import retry
@retry(stop_max_attempt_number=3, wait_fixed=2000)
def safe_request(url):
proxy = get_proxy()
if not proxy:
raise Exception("没拿到代理IP")
proxies = {
"http": f"http://{proxy}",
"https": f"http://{proxy}"
}
response = requests.get(url, proxies=proxies, timeout=15)
if response.status_code != 200:
print(f"请求失败,状态码:{response.status_code}")
raise Exception("触发重试")
return response.text
常见问题排雷指南
Q:代理IP突然连不上了咋整?
A:先检查API密钥是否过期,再确认账户余额。ipipgo的控制台有实时用量监控,建议设置用量预警
Q:需要同时处理多个请求怎么办?
A:用连接池管理IP资源,建议参考官方文档里的多线程示例,记得设置合理的并发数
Q:返回的IP延迟太高?
A:在API参数里加个®ion=国内指定区域,或者升级到跨境专线套餐
为什么选ipipgo?
用过多家代理服务,最后长期留在ipipgo就图三点:
1. 提取速度快——基本秒回IP地址
2. 兼容性强——他们家的Socks5协议在复杂网络环境下特别稳
3. 客服给力——上次凌晨两点提工单居然秒回
最近发现他们家新出了按小时计费的套餐,适合短期项目。不过长期用还是包月划算,特别是静态住宅套餐,35块能拿到固定住宅IP,做账号养成的兄弟可以闭眼入。

