# 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 # 🎮 游戏资源爬取与转存工具
[![Python](https://img.shields.io/badge/Python-3.9%2B-blue?style=flat-square)](https://www.python.org/) [![PyQt5](https://img.shields.io/badge/PyQt5-5.15%2B-green?style=flat-square)](https://www.riverbankcomputing.com/software/pyqt/) [![Playwright](https://img.shields.io/badge/Playwright-1.41%2B-orange?style=flat-square)](https://playwright.dev/) [![License](https://img.shields.io/badge/License-MIT-yellow?style=flat-square)](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