
一、Requests代理设置入门姿势
搞Python爬虫的兄弟应该都遇到过被网站封IP的尴尬,这时候代理IP就是救命稻草。Requests库作为Python里最常用的HTTP工具,配代理其实巨简单。直接在请求时加个proxies参数就完事:
import requests
proxies = {
"http": "http://用户名:密码@gateway.ipipgo.com:9020",
"https": "http://用户名:密码@gateway.ipipgo.com:9020"
}
response = requests.get("http://目标网站.com", proxies=proxies)
注意这里用的是ipipgo的代理地址格式,他们家的隧道代理不需要自己维护IP池。很多教程教人用免费代理,但实测下来免费代理的存活率不到10%,专业的事还是交给专业服务商靠谱。
二、动态代理的正确打开方式
有些场景需要每次请求都换不同IP,这时候就得用动态代理。以ipipgo的短效代理为例,每次请求自动切换IP:
import requests
proxy = "http://用户编号:授权密码@dynamic-gw.ipipgo.com:9680"
session = requests.Session()
session.proxies = {"http": proxy, "https": proxy}
连续请求会自动切换IP
for _ in range(5):
print(session.get("http://httpbin.org/ip").text)
这种旋转门式的代理特别适合需要高频更换IP的场景,比如商品比价、舆情监控这些。实测用动态代理后请求成功率能从30%飙升到95%以上。
三、认证代理的避坑指南
带账号密码的代理经常遇到认证失败问题,这里教大家两个防踩雷技巧:
| 错误现象 | 排查方法 |
|---|---|
| 407代理认证错误 | 检查密码是否含特殊符号(建议只使用字母数字) |
| 连接超时 | 确认白名单IP是否配置正确(ipipgo后台可自助添加) |
还有个冷知识:Requests的代理认证不支持特殊符号,如果密码包含@符号会直接报错。建议在ipipgo后台生成专用授权码,比直接用自己的密码安全得多。
四、Socks代理的另类玩法
除了HTTP代理,有些场景用Socks代理更合适。比如需要UDP协议支持的游戏数据采集,或者某些特殊场景的API调用:
pip install requests[socks] 先安装依赖
proxies = {
'http': 'socks5://user:pass@gateway.ipipgo.com:1080',
'https': 'socks5://user:pass@gateway.ipipgo.com:1080'
}
实测用ipipgo的Socks5代理,下载大文件速度比HTTP代理快20%左右。不过要注意有些老旧网站对Socks代理支持不好,这时候还是得切回HTTP模式。
五、常见问题急救包
Q:代理明明能用,为啥返回的还是本机IP?
A:九成是代理格式写错了,检查是否漏了协议头(http://或socks5://)
Q:同时用多个代理怎么设置?
A:用代理轮询中间件,或者直接上ipipgo的负载均衡代理,自带多通道切换
Q:代理速度突然变慢怎么办?
A:先用curl测试代理延迟,如果确实是代理问题,联系ipipgo客服换出口节点
最后唠叨一句,选代理服务别光看价格。像ipipgo这种能提供实时监控面板的,随时能看到代理使用量和成功率,出了问题也能快速定位,这才是真省心。

