Skip to content

开源项目 · 爬虫基础设施

IPProxyPool 代理池

把免费代理变成可查询、可评分的池子。

从公开代理源采集候选,按可用性评分存进 Redis,定时检测并在失败时扣分;最后用 FastAPI 把满分代理提供给采集程序。

  • 代理池
  • Redis
  • FastAPI
  • 爬虫基础设施
IPProxyPool 爬虫代理池项目封面
项目封面。查询接口返回的代理示例见下方截图。
类型
爬虫代理池
存储
Redis sorted set
接口
FastAPI
检测
定时检测 + 评分

它解决什么问题 ​

免费代理列表最麻烦的不是“找不到”,而是“不知道哪个还能用”。这个项目把采集、入库、检测和查询拆成几个可以独立启动的部分:先抓取公开代理源,预测试后写入 Redis;后台定时全量检测,成功的代理置为满分,失败的按步长扣分,扣到 0 就删除。

采集程序只需要向 API 要当前可用的代理,不用自己维护一堆失效地址。

主要能力 ​

采集与预测试

按配置的代理源采集,入库前先请求测试站点;支持国内 / 国外 / 全部来源。

Redis 评分

新代理初始 50 分,检测成功置为 100,失败扣分,分数归零后从池中删除。

按域名分池

代理按“用哪个测试域名测通”分开存储,例如 proxies:baidu.com 与 proxies:httpbin.org。

多种检测客户端

支持 requests、curl_cffi、requests_go;可以按网络情况调整采集和预测试并发。

HTTP API

提供满分代理、全部代理、统计信息和单代理测试接口,FastAPI 自带 `/docs` 文档。

重启不丢数据

代理保存在 Redis,重新启动后会在已有数据上继续采集和检测。

IPProxyPool 查询接口返回的代理列表截图
查询接口返回的代理列表示例;实际输出以你的 Redis 数据为准。

快速开始 ​

先准备 Python 3.10+ 和 Redis,然后:

bash
git clone https://github.com/cpython666/IPProxyPoolPro.git
cd IPProxyPoolPro
pip install -r requirements.txt
# 启动 Redis 后,一键启动 Web、采集和检测
python run.py

也可以拆开跑:

bash
python run.py web       # 只启动 FastAPI
python run.py spider    # 只采集代理
python run.py test      # 只检测 Redis 里已有代理

默认 API 监听 0.0.0.0:8000,打开 http://localhost:8000/docs 可以看接口文档。代理源、Redis、测试站点、并发数等配置在 config.py 和 .env 中维护,完整说明见仓库 README。

安全边界 ​

免费代理是不可信输入:它们可能窃听明文流量、篡改响应、记录凭据,也可能随时失效。不要通过免费代理传输账号、Cookie、令牌、隐私数据或生产机密。

当前公开仓库是 IPProxyPoolPro,页面和卡片的 GitHub 按钮都指向这里;原来的 IPProxyPool 仓库地址已不可访问。这个仓库是早期版本,同作者还有一个持续重构的安全加固版 IP-Proxy-Pool,需要更完整的鉴权、限流和反馈机制时可以从那边开始。

另外,免费代理源和页面结构经常变化,config.py 里的解析规则可能失效;抓不到代理时先检查目标源是否还能访问。

相关入口 ​

开源项目

喜欢这页纸,就去 GitHub 点个 Star。

问题、建议或想要的功能,欢迎在仓库里提 Issue。

打开 GitHub

本站收录内容源自互联网,不对其网站内容或交易负责。 | 如有内容侵犯权益,请联系站长删除相关内容!

今日和总访问量