Skip to content
Rayz3rkPublic

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

通用网页采集系统

基于 框架.md 的 V1 MVP 实现,优先覆盖文档要求的主链路:

  • 任务管理
  • 调度器
  • URL 队列
  • 下载器
  • 解析器
  • 数据清洗与去重
  • 存储层
  • 监控与导出接口

技术栈

  • FastAPI
  • React + Vite
  • SQLAlchemy
  • APScheduler
  • httpx + lxml
  • Redis 队列(支持本地开发内存回退)
  • PostgreSQL(支持本地开发 SQLite 回退)

目录

app/
  api/        FastAPI 路由
  core/       配置、数据库、日志
  models/     数据模型
  schemas/    请求/响应结构
  services/   调度、队列、下载、解析、清洗、采集
frontend/     React 静态管理台
tests/        最小单元测试

本地启动

  1. 创建虚拟环境并安装依赖。
  2. 复制 .env.example 为 .env,按需修改数据库和 Redis 连接。 .env.example 默认使用 SQLite + memory queue,本地可直接启动;生产环境再切换为 PostgreSQL + Redis。
  3. 安装前端依赖并构建静态资源:
cd frontend
npm install
npm run build
  1. 启动服务:
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 /health
  • GET /api/tasks
  • POST /api/tasks
  • PATCH /api/tasks/{task_id}
  • POST /api/tasks/{task_id}/pause
  • POST /api/tasks/{task_id}/resume
  • POST /api/tasks/{task_id}/run
  • POST /api/parser/test
  • GET /api/queue/status
  • GET /api/queue/failures
  • GET /api/results
  • GET /api/results/export
  • GET /api/monitor/metrics
  • GET /api/logs/requests

合规边界

本项目默认遵循以下限制:

  • 尊重 robots.txt
  • 不绕过登录、验证码和访问限制
  • 遇到 403 / 429 自动降速
  • 默认限速,避免高频抓取
  • 不针对敏感个人信息设计采集能力

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages