我终于搞定爬虫封IP!从零手写一套 Requests 自动轮换代理池(亲测可用) 📅 发布时间:2026/7/7 14:20:53 👁️ 浏览次数: 玩爬虫这么久我踩过最多的坑不是解析难、不是异步慢而是IP 被疯狂封禁。真的太烦了本地IP跑一会儿就403、访问超时、直接拉黑爬虫动不动就罢工每次都得停手换网络。后面我干脆自己手写了一套轻量代理IP轮换池不用 Redis、不用复杂框架纯原生 Requests 就能跑。自动换IP、自动剔除坏IP、失败自动重试算是彻底解决了普通爬虫被封IP的问题。今天把我自己日常在用的这套完整方案分享出来新手直接复制就能跑不用瞎折腾。先说说我们为什么一定要用代理池其实道理特别简单你一直用同一个IP高频请求网站服务器一眼就能识别出你是爬虫直接风控、封禁。代理池的作用就是每次请求换个新IP伪装成不同的普通用户在访问网站根本抓不到你的真实地址被封概率直接降到很低。我这套代码主打一个轻量、省心、全自动不用手动管IP失效、不用自己切换全部程序自动处理。环境超级简单全程只需要一个依赖就是 requests直接装就行pip install requests代理IP这块我说句实话新手练习随便找免费代理就行够用但如果是长期跑项目、正式爬数据一定要用付费代理。免费代理通病就是寿命短、延迟高只适合练手学习。我理解的代理池核心逻辑通俗版我自己写代码的时候就遵循四个核心步骤特别好理解1.捞IP从代理接口批量拿一堆代理IP出来2.筛IP逐个测试把超时、连不上的坏IP全部删掉3.存IP把能用的优质IP存在列表里备用4.自动换IP每次发请求随机挑一个坏了自动丢、空了自动更新整套流程全自动完全不用人工干预。直接上我日常在用的完整源码这是我精简优化后的版本容错、重试、删坏IP、自动更新全部写好了注释我也写得很直白大家直接照搬运行就行。import requests import random import time class ProxyPool: def __init__(self): # 存放可用代理IP self.proxy_list [] # 用来测试代理是否正常的公共接口 self.test_url http://httpbin.org/ip # 超时5秒直接判定失效 self.timeout 5 # 最多重试3次 self.max_retry 3 def get_free_proxies(self): 获取代理站大爷API proxy_api https://www.zdaye.com/get try: res requests.get(proxy_api, timeout10) if res.status_code 200: proxy_data res.json() return proxy_data.get(proxy_list, []) except Exception as e: print(暂时获取不到新代理IP) return [] def check_proxy(self, proxy): 检测单个代理是否能用 try: proxies { http: fhttp://{proxy}, https: fhttp://{proxy} } res requests.get(self.test_url, proxiesproxies, timeoutself.timeout) if res.status_code 200: print(f可用代理{proxy}) return True except Exception: print(f失效代理{proxy}) return False def init_proxy_pool(self): 初始化并清洗代理池 print(正在刷新代理池筛选可用IP...) raw_proxies self.get_free_proxies() if not raw_proxies: print(本次未获取到任何代理IP) return # 只保留有效IP valid_proxies [p for p in raw_proxies if self.check_proxy(p)] self.proxy_list valid_proxies print(f代理池刷新完成当前可用IP数量{len(self.proxy_list)}) def get_random_proxy(self): 随机拿一个可用代理空了就自动刷新 if not self.proxy_list: print(代理池空了自动重新更新中...) self.init_proxy_pool() return random.choice(self.proxy_list) if self.proxy_list else None def remove_invalid_proxy(self, proxy): 删掉失效的代理 if proxy in self.proxy_list: self.proxy_list.remove(proxy) print(f移除失效IP{proxy}剩余可用{len(self.proxy_list)}) def proxy_request(self, url, methodGET, **kwargs): 自带IP轮换、重试的请求方法直接替代原生requests.get/post retry_count 0 while retry_count self.max_retry: proxy self.get_random_proxy() if not proxy: raise Exception(当前无可用代理) proxies { http: fhttp://{proxy}, https: fhttp://{proxy} } try: kwargs[proxies] proxies kwargs[timeout] self.timeout if method.upper() GET: res requests.get(url, **kwargs) elif method.upper() POST: res requests.post(url, **kwargs) else: raise Exception(仅支持 GET / POST) print(f请求成功本次IP{proxy}) return res except Exception: retry_count 1 self.remove_invalid_proxy(proxy) print(f请求失败换IP重试剩余次数{self.max_retry - retry_count}) time.sleep(1) raise Exception(多次重试全部失败暂无可用代理) # 全局实例化全程复用 proxy_pool ProxyPool() proxy_pool.init_proxy_pool()简单测试一下看IP是不是真的在轮换写个几行测试代码跑五次请求就能明显看到每次IP都不一样if __name__ __main__: test_url http://httpbin.org/ip for i in range(5): try: resp proxy_pool.proxy_request(test_url) print(f第{i1}次请求IP{resp.text}\n) except Exception as e: print(f第{i1}次请求失败{e}\n) time.sleep(1)跑通之后你会发现失效IP自动剔除、空池自动更新、每次请求随机换IP整个过程完全不用自己管极其省心。长期使用我加的几个实用优化非常有用1. 后台定时自动刷新代理池代理IP都是短命的长期跑爬虫必须定时更新我一般10分钟刷一次import threading def refresh_proxy_pool(): while True: time.sleep(600) proxy_pool.init_proxy_pool() # 后台线程默默运行不影响主程序 threading.Thread(targetrefresh_proxy_pool, daemonTrue).start()2. 免费代理仅学习用生产务必换付费这点我真心建议大家免费代理玩玩就行存活率极低、经常超时。真正做项目直接对接付费代理API替换掉代码里的代理接口即可稳定性直接翻倍。3. 别高频狂请求就算有代理池也别一秒几十次乱请求。适当加随机休眠模拟真人浏览节奏风控概率会更低。平时最常见的问题汇总Q为什么我成功率很低、老是超时基本都是免费代理本身质量差换付费代理、稍微调大超时时间就能解决。Q为什么有时候代理池直接空了免费接口IP数量有限、失效快开启定时刷新或者直接换付费接口就稳了。QHTTPS 网站请求失败怎么回事部分老旧免费代理不支持HTTPS尽量筛选高匿通用代理即可。最后小结说实话对于绝大多数个人爬虫、中小型项目根本不用上 Redis 分布式代理池。我这套轻量轮换方案零额外组件、代码少、好维护、全自动完全够用。只要你不是超大规模分布式爬虫这套代码直接拿去长期跑项目完全没问题彻底告别爬虫被封IP的烦恼。
Trae:基于MCP协议的AI Agent工作流操作系统 1. 项目概述:Trae不是另一个IDE,而是AI原生工作流的“操作系统级”接口“干货满满,带你在AI的道路上折腾 Trae”——这个标题里藏着一个被多数人忽略的关键动词:“折腾”。它不是“安装”“配置”“使用”,而是带着实验… 2026/7/7 14:20:53
2026昌吉黄金回收白银回收铂金回收价格高无损耗专业鉴定本地人常去门店联系方式推荐 2026昌吉黄金白银铂金回收实测榜单|公安工商双备案中检认证无损测金无折旧费门店 昌吉黄金回收哪家靠谱|工商公安双备案中检认证实体门店 昌吉贵金属回收市场实地探访 昌吉本地贵金属回收店铺遍地丛生,行业套路层出不穷,不少市民变… 2026/7/7 14:18:53
魔兽争霸3 Windows 11兼容性终极指南:解锁宽屏高帧率完整方案 魔兽争霸3 Windows 11兼容性终极指南:解锁宽屏高帧率完整方案 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为魔兽争霸3在Windows 1… 2026/7/7 14:18:53
嵌入式系统中高可靠数据存储方案设计与实现 1. 项目背景与核心需求在嵌入式系统开发中,数据存储的可靠性一直是个关键挑战。我曾参与过一个工业自动化项目,现场设备需要在恶劣环境下(高温、高湿、强电磁干扰)持续运行数年,而配置参数和运行日志的丢失会导致整个产… 2026/7/7 16:35:49
一站式解决方案:如何用开源工具高效管理你的B站视频收藏 一站式解决方案:如何用开源工具高效管理你的B站视频收藏 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirrors… 2026/7/7 16:35:49
2026 年上半年,软件开发领域的 7 个观察 时间过得挺快,2026 年已经过去一半了。这半年里,软件开发领域也有一些新的变化和趋势。AI 继续火热,低代码持续演进,云原生彻底普及…… 今天就和大家聊聊几个值得关注的方向,供参考。01 AI 编程工具从 "辅助&quo… 2026/7/7 16:33:48
智慧校园平台项目验收,学校怎么把关才算稳当? ✅作者简介:合肥自友科技 📌核心产品:智慧校园平台(包括教工管理、学工管理、教务管理、考务管理、后勤管理、德育管理、资产管理、公寓管理、实习管理、就业管理、离校管理、科研平台、档案管理、学生平台等26个子平台) 。公司所有人员均有多… 2026/7/7 16:31:48
工业园区设备运维,工厂设备运维 设备运维工作包含哪些内容?设备运维工作重要吗?在工程领域,设备运维工作是保障各类设备稳定运行的关键环节。设备运维不仅关乎设备本身的寿命与性能,更对整个生产流程的顺畅性和安全性起着决定性作用。那么,设备运维工… 2026/7/7 16:31:48
STM32L021K4与WSEN-ISDS传感器实现低功耗运动追踪方案 1. 项目背景与核心组件解析在嵌入式系统开发中,精确跟踪物体的三维空间运动一直是个具有挑战性的任务。WSEN-ISDS (2536030320001)这款6轴MEMS传感器与STM32L021K4超低功耗MCU的组合,为解决这个问题提供了高性价比的方案。这个搭配特别适合需要长时间电池… 2026/7/7 16:29:48
Acunetix v24.8 深度解析:DAST漏洞扫描器核心原理与DevSecOps实践 1. 项目概述:Acunetix v24.8 高级版漏洞扫描器深度解析作为一名在网络安全领域摸爬滚打多年的老兵,我深知一款趁手的“兵器”对于安全测试工作意味着什么。今天要聊的,就是Web应用安全测试领域里一个响当当的名字——Acunetix。特别是其v24.8… 2026/7/7 0:01:11
如何3步搞定加密视频下载:跨平台资源嗅探与解密工具终极指南 如何3步搞定加密视频下载:跨平台资源嗅探与解密工具终极指南 【免费下载链接】res-downloader 视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载! 项目地址: https://gitcode.com/GitHub_Trending/re/res-downloader 你是… 2026/7/7 0:03:13
Jailhouse-gui可视化管理工具:让多核处理器分区变得简单高效 Jailhouse-gui可视化管理工具:让多核处理器分区变得简单高效 【免费下载链接】Jailhouse-gui A graphical user interface (GUI) tool for configuring and managing Jailhouse, a Linux-based hypervisor for partitioning multicore processors into isolated cel… 2026/7/7 0:03:13
6个月转型AI工程师:实战路径与核心技能 1. 项目概述:6个月转型AI工程师的可行性路径在2023年大模型技术爆发的背景下,AI工程师岗位需求同比增长217%(LinkedIn数据)。不同于传统算法工程师需要3-5年培养周期,现代AI工程师更侧重工程化落地能力。我在硅谷科技公… 2026/7/7 11:26:57
TPAFE0808与PIC18F87K22的多通道信号采集方案 1. 项目背景与核心需求在工业自动化、医疗设备和科研仪器等领域,多通道信号采集与系统监测是基础且关键的技术需求。传统方案往往面临通道数量不足、信号调理复杂、系统集成度低等问题。TPAFE0808作为一款8通道模拟前端芯片,与PIC18F87K22微控制器的组合… 2026/7/7 11:26:57
STC3115与PIC18LF26K80构建高精度电池管理系统 1. STC3115与PIC18LF26K80在电池管理系统中的核心价值在现代电子设备中,电池管理系统(BMS)的重要性不亚于设备的核心处理器。STC3115作为一款高精度电池电量监测IC,与PIC18LF26K80微控制器的组合,构成了一个既能精确监控又能智能管理的完整解… 2026/7/7 11:26:58