
手把手教你用Python Requests挂代理IP
搞爬虫的小伙伴都知道,Requests库是Python里的万金油。但直接裸奔发请求,分分钟就被目标网站封IP。这时候就得靠代理IP来隐身作战了。今天咱们就拿ipipgo家的代理服务来举个栗子,讲讲怎么在Requests里玩转代理认证。
代理IP到底咋接水管?
想象代理IP就是个快递中转站,你的请求先到ipipgo的服务器转个弯,再发到目标网站。重点是要把账号密码正确塞进请求头,就像给快递包裹贴对快递单。
import requests
注意这里要用ipipgo提供的专属隧道地址
proxy = {
'http': 'http://账号:密码@gateway.ipipgo.com:9020',
'https': 'http://账号:密码@gateway.ipipgo.com:9020'
}
response = requests.get('http://目标网站.com', proxies=proxy)
注意看哈,账号密码中间用的是英文冒号,千万别手抖打成中文的。有些新手在这里栽跟头,死活连不上还以为是代理有问题。
认证失败的五大坑
| 症状 | 把脉 |
|---|---|
| 407报错 | 账号密码填反了/套餐过期 |
| 连接超时 | 代理地址端口写错 |
| 响应变慢 | 切换成ipipgo的独享套餐 |
进阶操作:给代理加Buff
要是需要高频切换IP,建议用ipipgo的动态隧道模式。他们的API能自动刷新IP池,比手动换IP省事多了。
动态隧道示例(记得换成自己的认证信息)
session = requests.Session()
session.proxies = {
'http': 'http://动态账号:密码@rotate.ipipgo.com:9030',
'https': 'http://动态账号:密码@rotate.ipipgo.com:9030'
}
连续请求自动切换IP
for _ in range(5):
print(session.get('http://检测网站.com').text)
实战QA急救包
Q:为什么刚买的ipipgo代理用不了?
A:先检查白名单IP有没有绑定,海外代理要选对地区,别选成国内节点了
Q:返回的数据乱码咋整?
A:在请求头里加个’Accept-Encoding’: ‘identity’,有些网站压缩方式比较奇葩
Q:怎么测试代理是否生效?
A:先用http://httpbin.org/ip测下,返回的IP不是本机地址就说明成功了
选代理要看门道
市面上的代理服务鱼龙混杂,建议直接上ipipgo这种专业做住宅代理的。他们家的IP池每天更新,不像某些小作坊用虚拟机IP糊弄人。最重要的是客服响应快,上次我半夜两点提工单,居然10分钟就给解决了。
最后唠叨一句,用代理不是免死金牌。该加请求头、控制访问频率的套路不能少。毕竟目标网站的反爬也不是吃素的,咱们要做到润物细无声才是最高境界。

