# 升级后使用指南 ## ✅ 已完成的升级 ### 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`