🎉 主要更新:
后端:
- 全新华为应用市场爬虫系统
- 三表分离数据库设计 (app_info, app_metrics, app_rating)
- 完整的API接口 (搜索、分类、热门、上新等)
- 元服务自动识别和分类
- 智能Token管理和数据处理
- 修复热门应用重复显示问题
前端:
- 全新首页设计 (今日上架、热门应用)
- 应用页面 (彩色分类磁贴、智能图标匹配)
- 今日上新页面 (日期切换)
- 热门应用页面 (卡片布局)
- 应用详情页面 (完整信息展示)
- Apple风格搜索栏
- Footer组件
- 底部导航栏优化 (4个导航项)
- 骨架屏加载效果
- FontAwesome图标集成
UI/UX:
- 统一浅色背景 (#F5F5F7)
- 流畅的过渡动画
- 响应式设计
- 毛玻璃效果
文档:
- CHANGELOG.md - 完整更新日志
- QUICKSTART.md - 快速开始
- 多个技术文档和使用指南
版本: v2.0.0
121 lines
2.9 KiB
Markdown
121 lines
2.9 KiB
Markdown
# 升级后使用指南
|
||
|
||
## ✅ 已完成的升级
|
||
|
||
### 1. 数据库迁移
|
||
所有新字段已成功添加到数据库:
|
||
- ✓ dev_id, supplier(开发者信息)
|
||
- ✓ kind_id, tag_name(分类信息)
|
||
- ✓ price(价格)
|
||
- ✓ main_device_codes(设备支持)
|
||
- ✓ target_sdk, min_sdk等(SDK信息)
|
||
- ✓ ctype, app_level, packing_type(其他信息)
|
||
|
||
### 2. 并发爬取
|
||
- ✓ 默认5个并发
|
||
- ✓ 速度提升约5倍
|
||
|
||
## 使用方法
|
||
|
||
### 方式1:在backend根目录运行
|
||
```bash
|
||
cd backend
|
||
|
||
# 爬取前10个应用
|
||
python3 crawl.py --limit 10
|
||
|
||
# 爬取所有应用
|
||
python3 crawl.py
|
||
```
|
||
|
||
### 方式2:在crawler目录运行
|
||
```bash
|
||
cd backend/app/crawler
|
||
|
||
# 爬取前10个应用
|
||
python3 crawl.py --limit 10
|
||
|
||
# 爬取所有应用
|
||
python3 crawl.py
|
||
```
|
||
|
||
## 性能对比
|
||
|
||
| 应用数量 | 旧版(串行) | 新版(并发5) | 提升 |
|
||
|---------|------------|-------------|------|
|
||
| 10个 | ~5秒 | ~1秒 | 5倍 |
|
||
| 100个 | ~50秒 | ~10秒 | 5倍 |
|
||
| 962个 | ~8分钟 | ~2分钟 | 4倍 |
|
||
|
||
## 输出示例
|
||
|
||
```
|
||
================================================================================
|
||
开始爬取 2 个应用(并发数: 5)
|
||
================================================================================
|
||
|
||
[1/2] C6917559067092904725 ✓ 突击射击 → 无更新
|
||
[2/2] C6917559133889396578 ✓ 欢乐麻将 → 无更新
|
||
|
||
================================================================================
|
||
爬取完成: 成功 2 个, 失败 0 个
|
||
================================================================================
|
||
```
|
||
|
||
## 新增功能
|
||
|
||
### 前端应用详情页
|
||
现在会显示:
|
||
- ✅ 支持平台(手机、平板、智慧屏等)
|
||
- ✅ 目标SDK版本
|
||
- ✅ 最低API级别
|
||
- ✅ 价格信息
|
||
|
||
### 设备类型映射
|
||
- 0 → 手机
|
||
- 1 → 平板
|
||
- 2 → 智慧屏
|
||
- 3 → 手表
|
||
- 4 → 车机
|
||
- 5 → PC
|
||
|
||
## 注意事项
|
||
|
||
1. **数据库连接警告**:运行结束时可能会看到 `RuntimeError: Event loop is closed` 警告,这是 aiomysql 的已知问题,不影响功能。
|
||
|
||
2. **并发数调整**:如果遇到网络问题,可以在 `crawler.py` 中调整 `batch_size` 参数(建议5-10之间)。
|
||
|
||
3. **重新爬取**:升级后建议重新爬取一次数据,以获取所有新字段的信息。
|
||
|
||
## 完整流程
|
||
|
||
```bash
|
||
# 1. 数据库迁移(已完成)
|
||
cd backend
|
||
python3 migrate_db.py
|
||
|
||
# 2. 启动后端服务(新终端)
|
||
python3 -m uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
|
||
|
||
# 3. 爬取数据(新终端)
|
||
python3 crawl.py --limit 10
|
||
|
||
# 4. 启动前端(新终端)
|
||
cd frontend
|
||
npm run dev
|
||
|
||
# 5. 访问
|
||
# http://localhost:5173
|
||
```
|
||
|
||
## 故障排查
|
||
|
||
### Q: 爬虫提示找不到文件
|
||
A: 确保在 `backend` 目录下运行 `python3 crawl.py`
|
||
|
||
### Q: 数据库连接失败
|
||
A: 检查 `.env` 文件中的数据库配置
|
||
|
||
### Q: 并发爬取失败率高
|
||
A: 降低并发数,修改 `crawler.py` 中的 `batch_size=5` 改为 `batch_size=3`
|