基于 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 配置
brew install redis
brew services start redissudo apt update
sudo apt install redis-server
sudo systemctl start redis-server如果需要,在根目录创建 .env 文件以覆盖默认设置:
REDIS_HOST=localhost
REDIS_PORT=6379
# REDIS_PASSWORD=your_password确保已安装 uv (安装 uv)。
uv sync
uv run src/main.pyGET /get: 获取一个高质量的随机代理。支持format=text。GET /stats: 查看代理池健康状况和统计数据。GET /all: 列出代理池中的所有代理。
本项目支持通过 Docker 和 Docker Compose 快速部署。
这是最简单的方法,会自动启动 Redis 和 ProxyPool 容器:
docker-compose up -d如果你已有运行中的 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的可用性和速度
- 支持批量运行和定时更新
- 简洁易用,快速部署
- 克隆本仓库:
git clone https://github.com/XiaomingX/proxypool.git
cd proxypool
- 安装依赖(假设您使用 Python 环境,请根据实际需求调整):
pip install -r requirements.txt
- 运行代理抓取脚本:
python src/main.py
- 运行代理验证脚本:
python src/verify.py
- rust实现的端口扫描器:
- python实现的代理池检测:
- golang实现的供应链安全,CVE-POC的全自动收集(注无人工审核,可能被投毒,仅限有基础的朋友):
- python实现的检查.git泄漏的工具
本项目部分设计思路和实现参考了以下优秀开源项目:
- ProjectDiscovery Katana —— 一款现代化的爬虫和蜘蛛框架,提供强大的爬取与解析功能。
- Spider-rs Spider —— 一个高性能、可扩展的爬虫框架,适合大规模爬取任务。
欢迎提交 issues 和 pull requests,帮助我们不断改进。
该项目采用 MIT 许可证,详情请查看 LICENSE 文件。
祝您使用愉快!如有任何问题,请联系作者。