XiaomingX/proxy-pool
GitHub: XiaomingX/proxy-pool
基于FastAPI和Redis的轻量级代理池管理工具,自动采集、验证代理IP并通过评分机制提供高质量代理。
Stars: 127 | Forks: 29
# ProxyPool Architect
基于 Python 3.11+、FastAPI 和 Redis 构建的现代化、快速且可靠的代理池。
## 特性
- **现代化技术栈**: FastAPI, aiohttp, Redis, APScheduler, Loguru。
- **异步**: 从抓取到验证完全异步。
- **权重评分**: 动态基于评分的管理(成功 +10,失败 -20)。
- **易于部署**: 使用 `uv` 管理。
## 项目结构
proxy-pool/
├── src/ # 源代码目录
│ ├── main.py # 应用入口
│ └── proxy_pool/ # 核心包
│ ├── api/ # API 路由
│ ├── core/ # 核心功能(调度器等)
│ ├── fetchers/ # 代理抓取器
│ ├── schemas/ # 数据模型
│ └── utils/ # 工具函数
├── fetch-proxy-by-deploy/ # 部署脚本
├── fetch-proxy-by-scan/ # 扫描工具
├── pyproject.toml # 项目配置
├── Dockerfile # Docker 镜像配置
└── docker-compose.yml # Docker Compose 配置
## 快速开始
### 1. 安装 Redis (前提条件)
#### macOS
brew install redis
brew services start redis
#### Linux (Ubuntu/Debian)
sudo apt update
sudo apt install redis-server
sudo systemctl start redis-server
### 2. 配置
如果需要,在根目录创建 `.env` 文件以覆盖默认设置:
REDIS_HOST=localhost
REDIS_PORT=6379
# REDIS_PASSWORD=your_password
### 3. 安装与运行项目
确保已安装 `uv` ([安装 uv](https://docs.astral.sh/uv/getting-started/installation/))。
uv sync
uv run src/main.py
## API 接口
- `GET /get`: 获取一个高质量的随机代理。支持 `format=text`。
- `GET /stats`: 查看代理池健康状况和统计数据。
- `GET /all`: 列出代理池中的所有代理。
## 构建自

## 使用 Docker 部署
本项目支持通过 Docker 和 Docker Compose 快速部署。
### 1. 使用 Docker Compose (推荐)
这是最简单的方法,会自动启动 Redis 和 ProxyPool 容器:
docker-compose up -d
### 2. 仅构建 ProxyPool 镜像
如果你已有运行中的 Redis:
# 构建镜像
docker build -t proxy-pool .
# 运行容器 (需要指定 Redis 地址)
docker run -d -p 8000:8000 -e REDIS_HOST=host.docker.internal proxy-pool
## 快速使用示例
获取代理并使用 `curl` 访问百度:
# 1. 获取一个代理 (纯文本格式)
PROXY=$(curl -s http://localhost:8000/get?format=text)
# 2. 使用该代理访问百度
curl -x "http://$PROXY" https://www.baidu.com -I
在 Python 脚本中使用:
import httpx
# 获取代理
proxy = httpx.get("http://localhost:8000/get?format=text").text
# 使用代理
proxies = {
"http://": f"http://{proxy}",
"https://": f"http://{proxy}",
}
response = httpx.get("https://www.baidu.com", proxies=proxies)
print(response.status_code)
## 主要功能
- 自动抓取多来源的代理IP
- 实时验证代理IP的可用性和速度
- 支持批量运行和定时更新
- 简洁易用,快速部署
## 安装与运行
1. 克隆本仓库:
git clone https://github.com/XiaomingX/proxypool.git
cd proxypool
2. 安装依赖(假设您使用 Python 环境,请根据实际需求调整):
pip install -r requirements.txt
3. 运行代理抓取脚本:
python src/main.py
4. 运行代理验证脚本:
python src/verify.py
## 如果你对网络安全感兴趣,如下开源代码不容错过:
- rust实现的端口扫描器:
- https://github.com/XiaomingX/RustProxyHunter
- python实现的代理池检测:
- https://github.com/XiaomingX/proxy-pool
- golang实现的供应链安全,CVE-POC的全自动收集(注无人工审核,可能被投毒,仅限有基础的朋友):
- https://github.com/XiaomingX/data-cve-poc
- python实现的检查.git泄漏的工具
- https://github.com/XiaomingX/github-sensitive-hack
## 参考与灵感来源
本项目部分设计思路和实现参考了以下优秀开源项目:
- [ProjectDiscovery Katana](https://github.com/projectdiscovery/katana) —— 一款现代化的爬虫和蜘蛛框架,提供强大的爬取与解析功能。
- [Spider-rs Spider](https://github.com/spider-rs/spider) —— 一个高性能、可扩展的爬虫框架,适合大规模爬取任务。
## 许可证
该项目采用 MIT 许可证,详情请查看 LICENSE 文件。
*祝您使用愉快!如有任何问题,请联系作者。*
标签:aiohttp, AV绕过, Docker, FastAPI, IP代理, IP 地址批量处理, ProxyPool, Python, Redis, uv, Web安全, 中间件, 二进制发布, 代理池, 代理管理, 任务调度, 匿名代理, 命令控制, 安全防御评估, 密码管理, 开源工具, 异步编程, 搜索引擎查询, 数据采集, 无后门, 权重评分, 网络测绘, 蓝队分析, 请求拦截, 逆向工具, 配置审计