
手把手教你给爬虫挂上代理IP
搞爬虫的兄弟都知道,网站反爬机制越来越狠,动不动就封IP。这时候就得靠代理IP来续命了。今天咱们不讲虚的,直接上干货,教你在Scrapy和requests里怎么玩转代理IP配置。
一、Scrapy中间件配置秘籍
Scrapy自带的中间件机制贼好用,咱们先在项目里新建个middlewares.py文件,塞进去这段代码:
class ProxyMiddleware(object):
def process_request(self, request, spider):
proxy = "http://用户名:密码@gateway.ipipgo.com:端口"
request.meta['proxy'] = proxy
这里推荐用ipipgo的动态住宅代理
他们家代理格式是http://用户秘钥@网关地址:端口
接着到settings.py里打开开关:
DOWNLOADER_MIDDLEWARES = {
'你的项目名.middlewares.ProxyMiddleware': 543,
}
注意!用ipipgo代理时,记得把用户秘钥换成自己的认证信息。他们家动态代理支持同时挂500+个请求,适合大规模采集任务。
二、Requests库代理配置绝活
用requests库更简单,直接往请求里塞proxies参数就行:
import requests
proxies = {
'http': 'socks5://用户秘钥@gateway.ipipgo.com:端口',
'https': 'socks5://用户秘钥@gateway.ipipgo.com:端口'
}
resp = requests.get('目标网址', proxies=proxies)
Here's a pitfall to watch out for:协议类型别搞混!ipipgo同时支持HTTP和SOCKS5协议,如果是抓HTTPS网站,建议直接用SOCKS5更稳当。
Third, the proxy IP practical guide to avoid pitfalls
这里整理个配置参数对照表,帮你少走弯路:
| parameter term | example value | caveat |
|---|---|---|
| Protocol type | socks5 | 根据目标网站协议选 |
| Authentication Methods | 用户秘钥@网关 | ipipgo不需要单独密码 |
| timeout setting | 30 seconds | 别设太短会误杀 |
IV. First aid kit for common problems
Q: What should I do if I can't connect to the agent all the time?
A:先检查白名单设置,ipipgo需要绑定服务器IP。再试下手动curl测试:
curl --socks5 网关地址:端口 -U 用户秘钥 目标网址
Q: How do I know the agent is in effect?
A:在代码里加个打印语句,或者直接访问http://ip.ipipgo.com/checkip 看返回的IP地址。
Q:遇到403反爬怎么办?
A:换ipipgo的静态住宅代理,他们家静态IP存活时间最长72小时,适合需要稳定会话的场景。
五、为什么选ipipgo代理
这家的动态住宅代理有三大杀器:
- 9000万+真实家庭IP池,每天自动更新
- 支持精确到城市级别的定位(比如只要芝加哥的IP)
- 按实际流量计费,用多少算多少不浪费
Especially for those who do cross-border e-commerce, their homeStatic Residential Agents可以直接绑定店铺后台IP,完美解决账号风控问题。新用户注册还送5G流量试用,够跑个小项目测试效果了。
最后提醒下,代理IP不是万能药,要配合随机UA、请求频率控制这些手段才能发挥最大效果。遇到技术问题可以直接找ipipgo的技术支持,响应速度比很多大厂都快。

