国外IP代理推荐:
IPIPGO|全球住宅代理IP(>>>点击注册免费测试<<<)
国内IP代理推荐:
天启|全国240+城市代理IP(>>>点击注册免费测试<<<)
Python爬虫遇到ip封禁?试试这个自救指南
搞爬虫的老铁们应该都遇到过这个场景:昨天还跑得溜溜的脚本,今天突然就被目标网站掐脖子了。浏览器手动访问正常,代码一跑就返回403,这时候八成是IP地址被拉黑了。别急着删库跑路,今天咱们唠唠怎么用代理IP给爬虫续命。

为什么你的爬虫总被识别?
很多新手以为只要加上随机UA和请求头就万事大吉,其实服务器识别爬虫的维度有二十多种。举个栗子,同一IP在1小时内请求500次,就算每次请求间隔随机,这个访问密度也足够触发风控。更狠的是有些网站会记录设备指纹,这时候换UA都不好使,必须得换IP。
这里给个实测数据对比:
| 防护级别 | 单IP存活时间 |
|---|---|
| 普通反爬 | 2-8小时 |
| 中级风控 | 10-30分钟 |
| 电商级防护 | 30秒-2分钟 |
手把手配置代理ip
以requests库为例,不用任何第三方中间件,直接上硬核代码:
import requests from itertools import cycle 从ipipgo后台获取的API提取链接 proxy_pool = [ 'HTTP://user:pass@gateway.ipipgo.com:8000', 'http://user:pass@gateway.ipipgo.com:8001', ...更多代理节点 ] proxy_cycle = cycle(proxy_pool) for _ in range(10): try: proxy = next(proxy_cycle) resp = requests.get('https://target.com', proxies={'http': proxy, 'https': proxy}, timeout=8) print(resp.status_code) except Exception as e: print(f"用{proxy}请求翻车了:{str(e)}")
注意要选支持全协议代理的服务商,像ipipgo这种能同时处理HTTP/HTTPS/socks5请求的,遇到需要走SOCKS5协议的网站也不慌。
实战中的骚操作
最近帮朋友搞了个比价爬虫,目标网站每5分钟换一次验证码策略。我们的解法是:
- 用ipipgo的动态IP池,每次重试自动切换出口IP
- 配合Selenium Wire中间人修改TLS指纹
- 不同IP使用不同浏览器指纹特征
这套组合拳打下来,连续跑了72小时没被ban。关键是住宅IP的设备多样性,有的IP来自巴西家庭宽带,有的是德国居民网络,目标网站根本摸不清规律。
QA急救包
Q:代理IP用着用着就失效?
A:选有自动剔除失效节点的服务,ipipgo的API会实时返回可用IP,比手动维护代理池省心10倍
Q:用了代理还是被识别?
A:检查是不是用了数据中心IP,很多网站会标记机房IP段。换成住宅代理(比如ipipgo的住宅IP资源)立马解决
Q:异步爬虫怎么配代理?
A:aiohttp要这样写:
conn = aiohttp.TCPConnector(
proxy='http://gateway.ipipgo.com:8000'
)
async with aiohttp.ClientSession(connector=conn) as session:
业务代码
选代理的隐藏技巧
很多人不知道,不同业务场景要选不同类型的代理:
最后说个血泪教训:千万别用免费代理!上次测试某个开源代理池,1万个IP里能用的不到10个,还不如用ipipgo的试用资源靠谱。毕竟人家有9000万真实住宅IP打底,这个量级不是野路子能比的。
国外IP代理推荐:
IPIPGO|全球住宅代理IP(>>>点击注册免费测试<<<)
国内ip代理推荐:
天启|全国240+城市代理IP(>>>点击注册免费测试<<<)
















发表评论
发表评论: