基于 框架.md 的 V1 MVP 实现,优先覆盖文档要求的主链路:
- 任务管理
- 调度器
- URL 队列
- 下载器
- 解析器
- 数据清洗与去重
- 存储层
- 监控与导出接口
- FastAPI
- React + Vite
- SQLAlchemy
- APScheduler
- httpx + lxml
- Redis 队列(支持本地开发内存回退)
- PostgreSQL(支持本地开发 SQLite 回退)
app/
api/ FastAPI 路由
core/ 配置、数据库、日志
models/ 数据模型
schemas/ 请求/响应结构
services/ 调度、队列、下载、解析、清洗、采集
frontend/ React 静态管理台
tests/ 最小单元测试
- 创建虚拟环境并安装依赖。
- 复制
.env.example为.env,按需修改数据库和 Redis 连接。.env.example默认使用SQLite + memory queue,本地可直接启动;生产环境再切换为 PostgreSQL + Redis。 - 安装前端依赖并构建静态资源:
cd frontend
npm install
npm run build- 启动服务:
uvicorn app.main:app --reload或者直接一键启动:
start.bat脚本会自动执行以下步骤:
- 检查 Python / Node / npm
- 创建
.venv - 按清华 PyPI 镜像安装后端依赖
- 按 npm 镜像安装前端依赖
- 自动构建前端静态资源
- 启动 FastAPI 服务并打开浏览器
可选参数示例:
start.bat -Port 9000
start.bat -ListenHost 0.0.0.0 -Port 9000
start.bat -SkipInstall
start.bat -SkipBuild
start.bat -NoBrowser默认开发模式下,如果未显式配置 PostgreSQL/Redis,系统会回退到 SQLite/内存队列,方便本地验证;正式部署建议按文档使用 PostgreSQL + Redis。
服务启动后:
- 后台管理台:
GET / - 健康检查:
GET /health - 后端 API:
/api/*
当前管理台已覆盖 框架.md 中的后台页面建议:
- 任务列表
- 新建采集任务
- URL 队列状态
- 采集结果预览
- 失败 URL 列表
- 解析规则测试器
- 运行日志
- 监控面板
- 数据导出
- 系统配置
GET /healthGET /api/tasksPOST /api/tasksPATCH /api/tasks/{task_id}POST /api/tasks/{task_id}/pausePOST /api/tasks/{task_id}/resumePOST /api/tasks/{task_id}/runPOST /api/parser/testGET /api/queue/statusGET /api/queue/failuresGET /api/resultsGET /api/results/exportGET /api/monitor/metricsGET /api/logs/requests
本项目默认遵循以下限制:
- 尊重
robots.txt - 不绕过登录、验证码和访问限制
- 遇到
403/429自动降速 - 默认限速,避免高频抓取
- 不针对敏感个人信息设计采集能力