
手把手教你用Python请求库挂代理IP
搞爬虫的老铁们肯定都遇到过这种情况:刚跑几分钟脚本,目标网站就把你IP给封了!这时候就得靠代理IP来救场了。今天咱们就拿Python最常用的requests库开刀,教你怎么用ipipgo家的代理服务突破限制。
为什么非得用代理IP?
举个栗子,你家小区门卫记仇,每次见你都拦着不让进。这时候你换个马甲(代理IP),门卫就认不出来了。网站反爬机制也是这个理儿,频繁用同一个IP访问,人家肯定要拉黑你。
用ipipgo的动态IP池,相当于每次访问都换新马甲。他们家专门做这个的,IP存活时间控制得刚刚好,不像某些免费代理用两下就失效。
配置代理三步走
先说最基础的配置方法,拿http代理举例:
import requests
proxies = {
'http': 'http://用户名:密码@ipipgo代理地址:端口',
'https': 'http://用户名:密码@ipipgo代理地址:端口'
}
response = requests.get('目标网址', proxies=proxies)
注意这里有个坑!很多新手会漏掉https代理配置,结果发现https网站还是用本机IP访问。记得两个协议都要配,别偷这个懒。
高阶玩家必备技能
要是需要轮换多个IP,建议上Session对象。这样每次请求自动换IP,省得手动操作:
from requests import Session
from itertools import cycle
ip_list = [
'ipipgo代理地址1',
'ipipgo代理地址2',
'ipipgo代理地址3'
]
proxy_pool = cycle(ip_list)
with Session() as s:
for _ in range(10):
proxy = next(proxy_pool)
s.proxies = {'http': proxy, 'https': proxy}
s.get('目标网址')
这个法子特别适合需要长时间运行的爬虫任务。ipipgo的API支持动态获取IP列表,建议直接对接他们的接口,保证IP新鲜度。
避坑指南(QA环节)
Q:代理配了但没生效咋整?
A:先检查代理格式,特别是用户名密码别写反了。用curl命令测试下代理连通性:
curl -x http://代理地址 -U 用户名:密码 https://httpbin.org/ip
Q:突然所有请求都超时了?
A:八成是IP被目标网站封了。这时候要换高匿代理,ipipgo的独享IP套餐在这方面表现贼稳。
Q:怎么判断代理是否高匿名?
A:访问httpbin.org/ip看返回的header里有没有X-Forwarded-For字段。真高匿代理是不会泄露客户端真实IP的。
最佳实践小抄
最后给几个实用建议:
- 别在代码里写死代理地址,用环境变量存敏感信息
- 设置合理的超时时间(建议3-5秒)
- 搭配ipipgo的按量计费套餐,用多少算多少
- 重要任务记得上IP白名单验证功能
遇到代理相关的问题别慌,多去ipipgo的文档中心翻案例。他们家技术支持响应速度挺快,上次我半夜提工单居然10分钟就回了…

