abb8b32ed3f78638f75d5b91ce04c10618c66319
- 前端端口改为 18081 - 添加 host: 127.0.0.1 配置 - 更新 CORS 允许新前端地址 - 更新启动/停止脚本
代理池管理系统
现代化、科技风的代理池 WebUI 管理系统,基于 Python + Vue3 开发。
🌟 特性
- 🔮 科技风设计 - 现代化的深色科技主题
- 📊 实时监控 - 自动统计代理池状态
- 🎯 智能管理 - 代理查询、筛选、排序、批量操作
- 📥 多格式导出 - 支持 CSV、TXT、JSON 格式
- ✅ 自动验证 - 自动验证代理可用性并评分
- 🚀 高性能 - 异步爬取和验证,支持高并发
📦 技术栈
后端
- 框架: FastAPI (端口 9949)
- 数据库: SQLite + aiosqlite
- 异步: asyncio
前端
- 框架: Vue 3 + Vite (端口 9948)
- UI库: Element Plus
- 状态管理: Pinia
- 图表: ECharts
- 样式: CSS Variables + 深色科技风
🚀 快速开始
1. 安装后端依赖
pip install -r requirements.txt
2. 安装前端依赖
cd WebUI
npm install
3. 启动服务
方式一:使用启动脚本(推荐)
cd script
start.bat
方式二:手动启动
启动后端服务(终端 1)
python api_server.py
启动前端服务(终端 2)
cd WebUI
npm run dev
停止服务
cd script
stop.bat
4. 访问 WebUI
打开浏览器访问:http://localhost:9948
📁 项目结构
ProxyPool/
├── main.py # 项目入口
├── requirements.txt # Python 依赖
├── .env.example # 环境变量示例
│
├── app/ # 后端代码
│ ├── api/ # FastAPI 路由
│ │ ├── main.py # 应用工厂
│ │ ├── routes/ # API 路由
│ │ ├── deps.py # 依赖注入
│ │ └── ...
│ ├── core/ # 核心模块
│ │ ├── config.py # 配置管理
│ │ ├── db.py # 数据库连接
│ │ ├── log.py # 日志配置
│ │ ├── plugin_system/ # 插件系统
│ │ └── tasks/ # 任务队列
│ ├── models/ # 数据模型
│ ├── repositories/ # 数据访问层
│ ├── services/ # 业务逻辑层
│ └── plugins/ # 代理源插件
│ ├── fate0.py # Fate0 代理源
│ ├── ip3366.py # IP3366 代理源
│ ├── ip89.py # IP89 代理源
│ ├── kuaidaili.py # 快代理源
│ ├── yundaili.py # 云代理源
│ ├── speedx.py # SpeedX 代理源
│ └── proxylist_download.py # ProxyList 代理源
│
├── WebUI/ # Vue3 前端
│ ├── src/
│ │ ├── api/ # API 封装
│ │ ├── stores/ # Pinia 状态管理
│ │ ├── views/ # 页面组件
│ │ ├── router/ # 路由配置
│ │ ├── components/ # 通用组件
│ │ └── style.css # 全局样式
│ ├── index.html
│ └── package.json
│
├── script/ # 启动脚本
│ ├── start.bat # Windows 启动脚本
│ └── stop.bat # Windows 停止脚本
│
└── db/ # 数据存储目录
└── proxies.sqlite # SQLite 数据库
🎨 主题切换
在设置页面可以切换三种科技风主题:
- 🔮 科技蓝 - 默认主题,蓝色霓虹风格
- 💜 星空紫 - 紫色星空风格
- 💚 矩阵绿 - 绿色黑客风格
📡 API 接口
统计信息
GET /api/stats
代理列表
POST /api/proxies
获取随机代理
GET /api/proxies/random
导出代理
GET /api/proxies/export/{format}
# format: csv, txt, json
删除代理
DELETE /api/proxies/{ip}/{port}
批量删除代理
POST /api/proxies/batch-delete
清理无效代理
DELETE /api/proxies/clean-invalid
插件列表
GET /api/plugins
切换插件状态
PUT /api/plugins/{plugin_id}/toggle
执行插件爬取
POST /api/plugins/{plugin_id}/crawl
系统设置
GET /api/settings
POST /api/settings
🐛 调试指南
数据不更新?
-
检查数据库
- 确认
db/proxies.sqlite文件存在 - 使用 SQLite 客户端打开查看数据
- 确认
-
手动测试 API
# 获取统计信息 curl http://localhost:9949/api/stats # 获取代理列表 curl -X POST http://localhost:9949/api/proxies \ -H "Content-Type: application/json" \ -d '{"page": 1, "page_size": 20}' -
查看浏览器网络请求
- 打开开发者工具 Network 标签
- 刷新页面查看 API 请求
- 检查响应状态码和数据
📝 配置说明
代理验证配置
- 验证超时: 3-30秒,默认 5秒
- 验证并发数: 10-200,默认 50
评分机制
- 验证成功: +10 分
- 验证失败: -5 分
- 分数为 0: 自动删除
🔧 常见问题
Q: 启动后端口被占用?
A: 修改 config.py 中的端口号(默认9949)或 frontend/vite.config.js 中的端口号(默认9948)
Q: 爬虫无法抓取代理?
A: 检查网络连接,确保能访问目标网站,或尝试更换代理源插件
Q: 代理验证失败率高?
A: 增加验证超时时间,或减少并发验证数量
Q: 数据库文件在哪里?
A: 默认在 db/proxies.sqlite,可在 config.py 中修改 DB_PATH
Q: 如何清空数据库?
A: 运行命令 python -c "from core.sqlite import SQLiteManager; import asyncio; asyncio.run(SQLiteManager().clear_all())"
📄 License
MIT License
🙏 致谢
- FastAPI - 高性能 Python Web 框架
- Vue 3 - 渐进式 JavaScript 框架
- Element Plus - 优秀的 Vue 3 UI 库
- ECharts - 强大的数据可视化库
Description
Languages
Python
65.5%
Vue
20.2%
JavaScript
6.9%
CSS
6.5%
Batchfile
0.8%