# game-resource-manager
**Repository Path**: aldmd/game-resource-manager
## Basic Information
- **Project Name**: game-resource-manager
- **Description**: 游戏资源爬取与转存工具 - GUI 版本。集成爬虫和百度网盘转存功能,支持批量爬取游戏资源并一键转存到百度网盘。
- **Primary Language**: Python
- **License**: MIT
- **Default Branch**: master
- **Homepage**: https://gitee.com/aldmd/game-resource-manager
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-03-02
- **Last Updated**: 2026-03-27
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 🎮 游戏资源爬取与转存工具
[](https://www.python.org/)
[](https://www.riverbankcomputing.com/software/pyqt/)
[](https://playwright.dev/)
[](LICENSE)
**一个功能强大的 GUI 工具,用于批量爬取游戏资源并自动转存到百度网盘**
[功能特性](#功能特性) • [快速开始](#快速开始) • [使用文档](#使用文档) • [开发指南](#开发指南)
---
## 📋 更新日志
### v1.1.0 (2026-03-08)
#### 修复
- **提取码获取修复** - 支持从 meta description 中提取文本格式的提取码(如 `提取码: q5sr`)
- **转存空文件夹问题** - 调整执行顺序,先验证链接再创建目录,避免创建空文件夹
- **版本号处理** - 只替换空格为下划线,保留点号等其他符号
- **爬虫结果保存路径** - 修复为保存到程序目录的 data 文件夹,而不是临时目录
- **移除调试代码** - 不再生成 debug 目录和 HTML 调试文件
#### 改进
- 优化 GUI 界面稳定性
- 改进错误处理和日志输出
### v1.0.0 (2026-03-07)
- 核心爬虫功能
- 百度网盘转存
- PyQt5 GUI 界面
- Cookie 验证
- 配置管理
- 单元测试
- 打包支持
---
## 📖 项目简介
本项目是一个集成爬虫和百度网盘转存功能的桌面应用程序,提供友好的图形界面,支持:
- ✅ **批量爬取游戏资源** - 从游戏资源网站自动提取游戏信息和百度网盘分享链接
- ✅ **智能转存到百度网盘** - 一键批量转存到你的百度网盘指定目录
- ✅ **实时进度显示** - 可视化进度条和详细日志
- ✅ **Cookie 验证** - 自动验证 Cookie 有效性
- ✅ **配置管理** - 灵活的 YAML 配置文件
- ✅ **错误处理** - 智能重试和友好的错误提示
## ✨ 功能特性
### 🔍 爬虫功能
- **异步爬取** - 基于 Playwright 的高性能异步爬虫
- **智能解析** - 自动处理多种页面类型(直接跳转、下载页、密码保护页)
- **自动提取** - 提取游戏名称、版本(支持字母后缀,如V1.16.1HF2)、百度网盘链接和提取码
- **进度回调** - 实时更新爬取进度
- **重试机制** - 智能重试失败的任务
### 📦 转存功能
- **批量转存** - 一次性转存多个分享链接
- **自动创建目录** - 在百度网盘中自动创建分类目录
- **提取码验证** - 自动验证和填写提取码
- **断点续传** - 支持从中断处继续(规划中)
- **进度跟踪** - 实时显示转存进度
### 🎨 GUI 界面
- **PyQt5 界面** - 现代化的图形用户界面
- **双选项卡设计** - 爬虫和转存功能分离
- **实时日志** - 查看详细的运行日志
- **进度显示** - 可视化进度条和状态信息
- **美观样式** - 精心设计的 UI 样式
### 🛠️ 辅助工具
- **Cookie 验证器** - 验证百度网盘 Cookie 是否有效
- **配置验证器** - 检查配置文件完整性
- **URL 验证器** - 验证 URL 格式和有效性
- **错误处理** - 用户友好的错误消息和智能重试
## 🚀 快速开始
### 前置要求
- Python 3.9 或更高版本
- Windows 10/11 (推荐) 或 Linux/macOS
- 百度网盘账号
### 安装步骤
#### 1️⃣ 克隆仓库
```bash
git clone https://gitee.com/aldmd/game-resource-manager.git
cd game-resource-manager
```
#### 2️⃣ 安装依赖
```bash
# 安装 Python 依赖
pip install -r requirements.txt
# 安装 Playwright 浏览器(首次运行需要)
playwright install chromium
```
> 💡 **提示**: 浏览器下载约 130MB,请耐心等待
#### 3️⃣ 配置
```bash
# 复制配置模板
cp data/config.yaml.example data/config.yaml
# 编辑配置文件
notepad data/config.yaml # Windows
# 或
nano data/config.yaml # Linux/macOS
```
**配置示例**:
```yaml
# 爬虫配置
crawler:
delay: 3.0 # 请求延迟(秒)
max_retries: 3 # 最大重试次数
headless: true # 无头模式(推荐 true)
# 转存配置
transfer:
delay: 2.0 # 转存延迟(秒)
target_directory: "游戏资源" # 目标目录
# 日志配置
logging:
level: "INFO" # 日志级别
console: true # 输出到控制台
# 百度网盘配置
baidu:
cookie: "your_cookie_here" # 从浏览器获取
```
#### 4️⃣ 获取 Cookie
1. 打开浏览器访问 https://pan.baidu.com
2. 登录你的百度网盘账号
3. 按 `F12` 打开开发者工具
4. 切换到"网络"选项卡
5. 刷新页面
6. 找到任意请求,查看请求头中的 `Cookie` 字段
7. 复制完整的 Cookie 值到配置文件
> 📖 **详细指南**: 查看 [Cookie 获取指南](src/docs/cookie_guide.txt)
#### 5️⃣ 运行
```bash
# 开发模式
python src/main.py
# 或验证配置
python src/verify_config.py data/config.yaml
```
## 📚 使用文档
### GUI 使用流程
#### 爬虫选项卡
1. **输入 URL 列表**
- 在文本框中输入游戏详情页 URL,每行一个
- 或点击"加载文件"从文件导入
2. **调整设置**
- 请求延迟:推荐 2-3 秒
- 重试次数:推荐 3 次
- 无头模式:勾选(后台运行)
3. **开始爬取**
- 点击"开始爬取"按钮
- 查看实时进度和日志
- 等待完成
4. **保存结果**
- 点击"保存结果"导出 JSON 文件
- 结果包含游戏名称、版本、链接、提取码
#### 转存选项卡
1. **输入 Cookie**
- 粘贴百度网盘 Cookie
- 系统会自动验证有效性
2. **设置目标目录**
- 输入百度网盘中的目标目录名称
- 默认:游戏资源
- 最终路径格式: `游戏资源/游戏名称_版本号/`
3. **加载任务**
- 点击"从爬虫结果加载"
- 或手动输入 JSON 格式任务
4. **开始转存**
- 点击"开始转存"按钮
- 查看实时进度
- 完成后检查百度网盘
### 命令行使用
```bash
# 验证配置
python src/verify_config.py data/config.yaml
# 运行测试
pytest tests/ -v
# 查看日志
tail -f logs/app.log
```
## 🔧 高级功能
### 测试
项目包含完整的测试套件:
```bash
# 运行所有测试
pytest tests/ -v
# 运行特定测试
pytest tests/test_basic.py -v
# 生成覆盖率报告
pytest tests/ --cov=src --cov-report=html
```
### 打包为 EXE
```bash
# Windows
scripts\build.bat
# Linux/macOS
bash scripts/build.sh
```
生成的 EXE 文件位于 `dist/` 目录。
> 📝 **注意**: 首次运行 EXE 时会自动下载 Playwright 浏览器(约 130MB)
### 配置文件详解
#### 完整配置示例
```yaml
# 爬虫配置
crawler:
delay: 3.0 # 请求延迟(秒)
max_retries: 3 # 最大重试次数
headless: true # 无头模式
page_load_timeout: 60000 # 页面加载超时(毫秒)
element_load_timeout: 10000 # 元素加载超时(毫秒)
test_mode: false # 测试模式
test_url_count: 2 # 测试模式 URL 数量
# 转存配置
transfer:
delay: 2.0 # 转存延迟(秒)
max_retries: 3 # 最大重试次数
timeout: 30 # 超时时间(秒)
target_directory: "游戏资源" # 目标目录
# 日志配置
logging:
level: "INFO" # 日志级别: DEBUG, INFO, WARNING, ERROR
file: "logs/app.log" # 日志文件路径
console: true # 是否输出到控制台
# 百度网盘配置
baidu:
cookie: "BAIDUID=xxx; BDUSS=yyy; STOKEN=zzz;" # Cookie
base_folder: "游戏资源" # 基础目录
```
## 📁 项目结构
```
game-resource-manager/
├── src/ # 源代码
│ ├── main.py # 应用入口
│ ├── main_window.py # 主窗口
│ ├── crawler/ # 爬虫模块
│ │ ├── browser.py # 浏览器管理
│ │ ├── parser.py # 页面解析
│ │ └── crawler.py # 爬虫逻辑
│ ├── transfer/ # 转存模块
│ │ ├── network.py # 网络请求
│ │ ├── parser.py # 链接解析
│ │ └── transfer.py # 转存逻辑
│ ├── gui/ # GUI 组件
│ │ ├── worker.py # 后台工作线程
│ │ └── styles.py # 样式表
│ ├── config/ # 配置管理
│ │ ├── settings.py # 统一配置类
│ │ ├── constants.py # 常量定义
│ │ └── selectors.py # CSS 选择器
│ └── utils/ # 工具模块
│ ├── logger.py # 日志系统
│ ├── cookie_validator.py # Cookie 验证
│ ├── config_validator.py # 配置验证
│ ├── validators.py # URL 验证
│ ├── error_handler.py # 错误处理
│ └── error_messages.py # 错误消息
├── tests/ # 测试模块
│ ├── test_basic.py # 基础测试
│ ├── test_config.py # 配置测试
│ └── test_utils.py # 工具测试
├── data/ # 数据文件
│ ├── config.yaml.example # 配置模板
│ └── urls.txt.example # URL 示例
├── scripts/ # 构建脚本
│ ├── build.spec # PyInstaller 配置
│ ├── build.bat # Windows 构建脚本
│ └── build.sh # Linux/Mac 构建脚本
├── requirements.txt # Python 依赖
└── README.md # 本文件
```
## 🐛 僵见问题
### Cookie 相关
**Q: Cookie 无效错误**
A:
1. 确保从 pan.baidu.com 域名获取
2. 检查 Cookie 包含 BAIDUID 和 BDUSS 字段
3. 尝试重新登录并获取新 Cookie
4. 使用 `python src/verify_config.py data/config.yaml` 验证
**Q: Cookie 过期**
A: Cookie 通常有效期为几天到几周,需要定期更新。
### 爬虫相关
**Q: 爬取失败率高**
A:
1. 增加请求延迟到 3-5 秒
2. 关闭无头模式查看浏览器行为
3. 检查网络连接
4. 查看日志文件 `logs/app.log`
**Q: 浏览器启动失败**
A:
```bash
# 重新安装浏览器
playwright install chromium
# 或设置国内镜像
set PLAYWRIGHT_DOWNLOAD_HOST=https://npmmirror.com/mirrors/playwright/
playwright install chromium
```
### 转存相关
**Q: 转存失败 - "该帐号存在异常(未实名登录或Cookie失效)"**
A: 这是 Cookie 失效或无效的表现,解决方法:
1. **重新获取 Cookie**:
- 使用浏览器无痕模式访问 https://pan.baidu.com
- 登录账号
- 按 F12 打开开发者工具
- 切换到"网络"选项卡
- 刷新页面
- 找到任意请求, - 复制完整的 Cookie 值
2. **验证 Cookie**:
```bash
python src/verify_config.py data/config.yaml
```
3. **检查账号状态**:
- 确保百度网盘账号已完成实名认证
- 确认账号没有被封禁或限制
- 检查网盘空间是否充足
**Q: 转存失败 - 其他错误**
A:
1. 验证 Cookie 是否有效(见上方)
2. 检查目标目录名称是否合法(不能包含 `<>|*?\":` 等字符)
3. 确认百度网盘空间充足
4. 查看详细错误日志 `logs/app.log`
### 打包相关
**Q: 打包失败**
A:
1. 确保安装了所有依赖
2. 清理 build/ 和 dist/ 目录
3. 检查 Python 版本(3.9-3.11)
4. 查看详细错误日志
## 🤝 贡献指南
欢迎贡献代码、报告 Bug 或提出新功能建议!
### 开发环境设置
```bash
# 克隆仓库
git clone https://gitee.com/aldmd/game-resource-manager.git
cd game-resource-manager
# 安装开发依赖
pip install -r requirements.txt
# 运行测试
pytest tests/ -v
```
### 提交代码
1. Fork 本仓库
2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 创建 Pull Request
### 代码规范
- 鯵循 PEP 8 编码规范
- 添加适当的注释和文档字符串
- 编写单元测试
- 更新相关文档
## 📋 开发路线图
### ✅ 已完成 (v1.0.0)
- [x] 核心爬虫功能
- [x] 百度网盘转存
- [x] PyQt5 GUI 界面
- [x] Cookie 验证
- [x] 配置管理
- [x] 单元测试
- [x] 打包支持
- [x] 完整文档
### 🚧 进行中
- [ ] 性能优化
- [ ] 更多测试用例
- [ ] 错误处理改进
### 📅 计划中 (v1.1.0)
- [ ] 并发爬取支持
- [ ] 断点续传
- [ ] 代理支持
- [ ] 更多网盘平台
### 🔮 未来计划 (v2.0.0)
- [ ] 云端同步
- [ ] 移动端应用
- [ ] 用户账户系统
- [ ] AI 智能推荐
## 📊 项目统计
- **版本**: 1.1.0
- **总文件数**: 60+
- **代码行数**: ~6000
- **测试覆盖率**: 80%+
- **开发时间**: 2 天
- **Git 提交**: 10+
## 📄 许可证
本项目采用 MIT 许可证 - 详见 [LICENSE](LICENSE) 文件
**⚠️ 注意**: 本工具仅供学习和研究使用,请勿用于商业用途或违反网站服务条款的行为。
## 🙏 致谢
感谢以下开源项目:
- [Playwright](https://playwright.dev/) - 浏览器自动化
- [PyQt5](https://www.riverbankcomputing.com/software/pyqt/) - GUI 框架
- [BeautifulSoup4](https://www.crummy.com/software/BeautifulSoup/) - HTML 解析
- [PyYAML](https://pyyaml.org/) - YAML 解析
- [PyInstaller](https://www.pyinstaller.org/) - 打包工具
- [pytest](https://docs.pytest.org/) - 测试框架
## 📞 联系方式
- **Gitee**: https://gitee.com/aldmd/game-resource-manager
- **Issues**: https://gitee.com/aldmd/game-resource-manager/issues
- **Wiki**: https://gitee.com/aldmd/game-resource-manager/wikis
## ⭐ Star History
如果这个项目对你有帮助,请在 Gitee 上给个 Star ⭐!
---
Made with ❤️ by aldmd | 2026