74fa0c60ad76b8f85396c77209bee55757998938
代理池管理系统
现代化、科技风的代理池 WebUI 管理系统,基于 Python + Vue3 开发。
🌟 特性
- 🔮 科技风设计 - 现代化的深色科技主题
- 📊 实时监控 - WebSocket 实时推送任务进度
- 🎯 智能管理 - 代理查询、筛选、排序、批量操作
- 📥 多格式导出 - 支持 CSV、TXT、JSON 格式
- ⏰ 定时任务 - 自动定期更新代理池
- 🚀 高性能 - 异步爬取和验证,支持高并发
📦 技术栈
后端
- 框架: FastAPI (端口 8923)
- 数据库: SQLite + aiosqlite
- 异步: asyncio
- 实时通信: WebSocket
前端
- 框架: Vue 3 + Vite (端口 6173)
- UI库: Element Plus
- 状态管理: Pinia
- 图表: ECharts
- 样式: CSS Variables + 深色科技风
🚀 快速开始
1. 安装后端依赖
pip install -r requirements.txt
2. 安装前端依赖
cd frontend
npm install
3. 启动服务
方式一:使用启动脚本(推荐)
cd script
start.bat
方式二:手动启动
启动后端服务(终端 1)
python api_server.py
启动前端服务(终端 2)
cd frontend
npm run dev
停止服务
cd script
stop.bat
4. 访问 WebUI
打开浏览器访问:http://localhost:6173
📁 项目结构
ProxyPool/
├── api_server.py # FastAPI 后端服务器
├── tasks_manager.py # 任务管理器
├── main.py # 爬虫主程序
├── config.py # 配置文件
├── requirements.txt # Python 依赖
├── .env.example # 环境变量示例
│
├── script/ # 启动脚本
│ ├── start.bat # Windows 启动脚本
│ ├── start.ps1 # PowerShell 启动脚本
│ ├── stop.bat # Windows 停止脚本
│ └── README.md # 脚本说明文档
│
├── core/ # 核心模块
│ ├── crawler.py # 爬虫基类
│ ├── validator.py # 代理验证器
│ ├── sqlite.py # 数据库管理
│ ├── plugin_manager.py # 插件管理器
│ ├── log.py # 日志配置
│ └── auth.py # 认证模块
│
├── plugins/ # 代理源插件
│ ├── fate0.py # Fate0 代理源
│ ├── ip3366.py # IP3366 代理源
│ ├── ip89.py # IP89 代理源
│ ├── kuaidaili.py # 快代理源
│ ├── yundaili.py # 云代理源
│ ├── speedx.py # SpeedX 代理源
│ └── proxylist_download.py # ProxyList 代理源
│
├── frontend/ # Vue3 前端
│ ├── src/
│ │ ├── api/ # API 封装
│ │ ├── stores/ # Pinia 状态管理
│ │ ├── views/ # 页面组件
│ │ ├── router/ # 路由配置
│ │ ├── components/ # 通用组件
│ │ ├── App.vue
│ │ ├── main.js
│ │ └── style.css # 全局样式
│ ├── index.html
│ ├── package.json
│ └── vite.config.js
│
└── db/ # 数据存储目录
└── proxies.sqlite # SQLite 数据库
🎨 主题切换
在设置页面可以切换三种科技风主题:
- 🔮 科技蓝 - 默认主题,蓝色霓虹风格
- 💜 星空紫 - 紫色星空风格
- 💚 矩阵绿 - 绿色黑客风格
📡 API 接口
统计信息
GET /api/stats
代理列表
POST /api/proxies
获取随机代理
GET /api/proxies/random
启动爬虫
POST /api/crawler/start
停止爬虫
POST /api/crawler/stop
定时任务
POST /api/scheduler
GET /api/scheduler
WebSocket 连接
ws://localhost:8923/ws
🐛 调试指南
任务进度不显示?
-
检查 WebSocket 连接
- 打开浏览器控制台(F12)
- 查看 Console 标签
- 应该看到 "WebSocket连接成功啦~"
- 应该看到 "收到WebSocket消息:" 日志
-
检查后端任务
- 查看后端终端输出
- 确认任务正在运行
- 查看是否有错误日志
-
检查插件可用性
- 确保
plugins/目录下有插件文件 - 插件能正常抓取代理
- 确保
数据不更新?
-
检查数据库
- 确认
db/proxies.sqlite文件存在 - 使用 SQLite 客户端打开查看数据
- 确认
-
手动测试 API
# 获取统计信息 curl http://localhost:8923/api/stats # 获取代理列表 curl -X POST http://localhost:8923/api/proxies \ -H "Content-Type: application/json" \ -d '{"page": 1, "page_size": 20}' -
查看浏览器网络请求
- 打开开发者工具 Network 标签
- 刷新页面查看 API 请求
- 检查响应状态码和数据
📝 配置说明
爬虫配置
- 最大并发数: 10-500,默认 200
- 验证超时: 3-30秒,默认 5秒
- 验证线程数: 10-200,默认 50
定时任务
- 执行间隔: 10-1440分钟,默认 60分钟
- 自动清理: 可选,清理无效代理
🔧 常见问题
Q: 启动后端口被占用?
A: 修改 api_server.py 最后一行的端口号(默认8923)或 frontend/vite.config.js 中的端口号(默认6173)
Q: 爬虫无法抓取代理?
A: 检查网络连接,确保能访问目标网站,或尝试更换代理源插件
Q: 代理验证失败率高?
A: 增加验证超时时间,或减少并发验证数量
Q: 数据库文件在哪里?
A: 默认在 db/proxies.sqlite,可在 core/sqlite.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%