CoolBotDataSys/README.md

120 lines
3.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# CoolBotDataSys - 酷博特数据分析系统
**版本:** v0.0.1
**日期:** 2026-04-06
多源数据采集、存储、清洗、分析全链路自动化平台。
## 功能模块
| 模块 | 描述 |
|------|------|
| 爬虫引擎 | 一尘网连体纪念钞数据采集(每小时增量 + 每日全量) |
| REST API | 藏品管理、价格追踪、帖子查询、统计报表 |
| 数据分析 | 龙钞/马钞价格分类统计、求购/出售趋势分析 |
| LLM 辅助 | 阿里云通义千问价格提取(可选) |
## 技术栈
- **后端:** Python 3.12 + FastAPI + uvicorn
- **数据库:** PostgreSQLRDS+ Redis本地缓存
- **爬虫:** requests + BeautifulSoup轻量定向采集
- **定时任务:** APScheduler + cron
## 目录结构
```
coolbot-data/
├── api/ # FastAPI 应用
│ ├── main.py # 应用入口、路由注册
│ ├── middleware/ # 响应封装
│ ├── models/ # Pydantic 模型
│ └── routes/ # API 路由
│ ├── collections.py # 藏品管理
│ ├── prices.py # 价格查询
│ ├── health.py # 健康检查
│ └── yichens.py # 一尘数据(含统计报表)
├── crawlers/ # 爬虫模块
│ ├── base.py # 爬虫基类(分页/重试/延时)
│ ├── crawl_today.py # 今日增量采集
│ └── yichens_spider.py # 全量历史采集
├── scripts/ # 运维脚本
│ ├── daily_crawl.sh # 每日爬虫 cron
│ ├── daily_report.py # 飞书日报推送
│ └── crawl_cron.sh # cron 调度脚本
├── alembic/ # 数据库迁移
├── config/ # YAML 配置
├── cache.py # Redis 缓存
├── database.py # PostgreSQL 连接
├── scheduler.py # APScheduler 调度
├── llm_price_extract.py # LLM 价格提取
└── requirements.txt # Python 依赖
```
## 快速启动
```bash
# 1. 安装依赖
pip install -r requirements.txt
# 2. 配置环境变量
cp .env.example .env
# 编辑 .env 填入数据库密码等
# 3. 启动 API 服务
python -m uvicorn api.main:app --host 0.0.0.0 --port 8080
# 4. 启动定时爬虫
python scheduler.py
```
## API 文档
启动服务后访问http://localhost:8080/docs
### 核心接口
| 接口 | 方法 | 描述 |
|------|------|------|
| /health | GET | 服务健康检查 |
| /api/v1/statistics | GET | 系统统计 |
| /api/v1/yichens/posts | GET | 帖子列表(支持分页/筛选) |
| /api/v1/yichens/statistics | GET | 一尘数据统计 |
| /api/v1/yichens/report/stats | GET | 龙钞分类统计(收购/出售细分) |
| /api/v1/yichens/report/categories | GET | 分类统计(今/近1小时 |
| /api/v1/collections | GET/POST | 藏品管理 |
| /api/v1/prices/latest | GET | 最新价格 |
| /api/v1/crawl-jobs/trigger | POST | 手动触发爬虫 |
## 数据库表
- collections - 藏品主表
- price_history - 价格历史
- yichens_posts - 一尘帖子(核心)
- yichens_users - 一尘用户
- yichens_replies - 帖子回复
- yichens_follows - 关注关系
- crawl_logs - 爬虫运行日志
- scheduled_tasks - 调度任务
- sys_config - 系统配置
## 爬虫调度
```cron
# 每15分钟增量采集
*/15 * * * * cd /root/coolbot-data && source venv/bin/activate && python3 crawlers/crawl_today.py >> logs/crawl_update.log 2>&1
# 每天8点全量采集
0 8 * * * cd /root/coolbot-data && source venv/bin/activate && python3 crawlers/yichens_spider.py >> logs/crawl_daily.log 2>&1
```
## 环境变量
详见 .env.example
## Git
```bash
git clone http://caibotmi:Caibotmi123@101.37.160.219/caibotmi/CoolBotDataSys.git
```