
Python下载图片卡壳?试试代理IP这招
搞爬虫的兄弟们都碰到过吧?用requests库下图片时突然就被ban了IP,眼瞅着数据抓不到干着急。今天教你们个野路子——给Python脚本套上代理IP,特别是用ipipgo家的服务,实测能绕开90%的封禁问题。
代理IP到底咋接进代码里?
说白了就是在requests请求时加个proxies参数,举个栗子:
import requests
这里填ipipgo提供的代理信息
proxies = {
'http': 'http://用户名:密码@gateway.ipipgo.com:端口',
'https': 'http://用户名:密码@gateway.ipipgo.com:端口'
}
response = requests.get('图片地址', proxies=proxies, timeout=10)
保存文件
with open('demo.jpg', 'wb') as f:
f.write(response.content)
注意!很多网站会校验请求头,建议加上User-Agent伪装成浏览器:
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) ...'
}
response = requests.get(url, headers=headers, proxies=proxies)
为啥推荐ipipgo的代理?
用过七八家代理服务商,这家的三个优势最实在:
1. 协议全活
支持HTTP/HTTPS/Socks5三种主流协议,特别是他们的跨境专线,下海外图片速度能飙到3MB/s+
2. 自动切换IP池
动态住宅套餐自带IP轮换,不用自己写切换逻辑,特别适合批量下载场景
3. 套餐价格对比
| 套餐类型 | 适用场景 | 单价 |
|---|---|---|
| 动态住宅(标准) | 中小型图片采集 | 7.67元/GB |
| 静态住宅 | 需要固定IP的业务 | 35元/IP |
避坑指南(常见问题QA)
Q:代理设置成功了还是被ban?
A:大概率是IP质量不行,换ipipgo的静态住宅套餐,他们家的IP存活周期比同行长2-3倍
Q:下载到一半卡住咋整?
A:代码里加个重试机制,同时检查代理连接状态。ipipgo客户端有实时流量监控,能快速定位问题节点
Q:需要同时处理几百个下载任务怎么办?
A:上多线程!但要注意线程数别超过代理套餐的并发限制。用ipipgo的企业版套餐,最高支持500并发
高阶技巧:智能切换代理池
在下载失败时自动更换代理,这个脚本模板可以直接抄作业:
from itertools import cycle
从ipipgo API获取的代理列表
proxy_list = [
'http://ip1:port',
'http://ip2:port',
...至少准备10个IP
]
proxy_pool = cycle(proxy_list)
retry = 3
for _ in range(retry):
proxy = next(proxy_pool)
try:
response = requests.get(url, proxies={'http': proxy}, timeout=15)
if response.status_code == 200:
break
except Exception as e:
print(f"{proxy} 挂了,换下一个...")
最后叨叨一句:别用免费代理!特别是下图片这种耗流量的操作,便宜的收费代理都比免费靠谱。ipipgo新用户有5元体验包,自己试过就知道差距在哪了。

