# gamer250 **Repository Path**: lutery/gamer250 ## Basic Information - **Project Name**: gamer250 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-06 - **Last Updated**: 2025-08-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Gamer520 自动保存工具 一个基于Python的浏览器自动化工具,能够自动将gamer520.com网站上的游戏资源保存到百度网盘中。 ## 项目概述 本工具使用Playwright进行浏览器自动化,结合AI视觉识别技术,实现从游戏介绍页面到百度网盘保存的全自动化流程。 ### 主要功能 - 🚀 自动处理初始弹窗 - 🎮 自动识别和点击下载按钮 - 🔐 自动处理密码保护页面 - 📁 自动提取百度网盘链接和提取码 - ☁️ 自动保存文件到百度网盘 - 🤖 AI视觉识别辅助页面元素定位 - 🌐 支持代理配置保证网络连通性 ### 技术特性 - **浏览器自动化**: 基于Playwright,支持Chrome/Edge - **AI集成**: 使用SiliconFlow API进行视觉识别 - **代理支持**: 支持SOCKS5和HTTP代理 - **异步处理**: 基于asyncio的高性能异步架构 - **类型安全**: 使用Pydantic进行数据验证 - **日志系统**: 完整的日志记录和错误追踪 ## 项目结构 ``` gamer520/ ├── src/ # 源代码目录 │ ├── __init__.py │ ├── main.py # 主程序入口 │ ├── config/ # 配置管理 │ │ ├── __init__.py │ │ ├── settings.py # 配置加载 │ │ └── config.yaml # 配置文件 │ ├── browser/ # 浏览器控制 │ │ ├── __init__.py │ │ ├── manager.py # 浏览器管理器 │ │ ├── proxy_config.py # 代理配置 │ │ └── page_handler.py # 页面处理基类 │ ├── handlers/ # 页面处理器 │ │ ├── __init__.py │ │ ├── popup_handler.py # 弹窗处理器 │ │ ├── game_page_handler.py # 游戏页面处理器 │ │ ├── password_handler.py # 密码保护页面处理器 │ │ └── baidu_handler.py # 百度网盘处理器 │ ├── ai/ # AI服务 │ │ ├── __init__.py │ │ ├── client.py # AI服务客户端 │ │ ├── vision.py # 视觉识别模块 │ │ └── decision.py # 智能决策引擎 │ ├── utils/ # 工具模块 │ │ ├── __init__.py │ │ ├── logger.py # 日志工具 │ │ ├── screenshot.py # 截图工具 │ │ └── validators.py # 验证工具 │ └── exceptions/ # 自定义异常 │ ├── __init__.py │ └── custom_exceptions.py ├── tests/ # 测试目录 │ ├── __init__.py │ ├── test_browser/ │ ├── test_handlers/ │ ├── test_ai/ │ └── test_utils/ ├── docs/ # 文档目录 ├── logs/ # 日志目录 ├── pyproject.toml # 项目配置 ├── README.md # 项目说明 ├── .gitignore # Git忽略文件 ├── .env.example # 环境变量示例 └── .pre-commit-config.yaml # 代码质量检查配置 ``` ## 安装和使用 ### 环境要求 - Python 3.11+ - Windows 操作系统 - 网络连接(支持代理) ### 安装步骤 1. **克隆项目** ```bash git clone cd gamer520 ``` 2. **安装Poetry(推荐)** ```bash pip install poetry ``` 3. **安装依赖** ```bash poetry install ``` 4. **安装Playwright浏览器** ```bash poetry run playwright install chromium ``` 5. **配置环境变量** ```bash cp .env.example .env # 编辑.env文件,填入API密钥等配置 ``` ### 配置说明 1. **复制配置文件** ```bash cp src/config/config.yaml.example src/config/config.yaml ``` 2. **编辑配置文件** - 设置SiliconFlow API密钥 - 配置代理设置(如需要) - 调整日志级别等 ### 运行程序 ```bash # 使用Poetry运行 poetry run python src/main.py # 或激活虚拟环境后运行 poetry shell python src/main.py # 指定游戏页面URL python src/main.py --url "https://www.gamer520.com/73454.html" # 运行演示模式 python src/main.py --demo ``` #### 程序功能 程序将自动执行以下步骤: 1. **百度网盘登录检查** - 确保已登录百度网盘 2. **游戏页面处理** - 导航到游戏页面,处理弹窗,查找下载链接 3. **密码页面处理** - 自动处理密码保护页面 4. **提取网盘信息** - 提取百度网盘链接和提取码 5. **保存到网盘** - 自动将游戏文件保存到百度网盘 #### 首次运行 首次运行时,程序会: - 自动打开百度网盘登录页面 - 等待用户手动登录 - 保存登录状态供后续使用 - 开始执行游戏保存流程 ## 开发指南 ### 开发环境设置 1. **安装开发依赖** ```bash poetry install --with dev ``` 2. **安装pre-commit钩子** ```bash poetry run pre-commit install ``` 3. **运行代码格式化** ```bash poetry run black src/ poetry run isort src/ ``` 4. **运行代码检查** ```bash poetry run flake8 src/ poetry run mypy src/ ``` ### 运行测试 ```bash # 运行所有测试 python run_tests.py # 运行所有测试(详细输出) python run_tests.py --verbose # 运行特定测试 python run_tests.py --test-name baidu_auth python run_tests.py --test-name logging python run_tests.py --test-name task_2_1 # 使用pytest运行测试 python run_tests.py --test-name pytest # 或直接使用pytest poetry run pytest tests/ # 运行测试并生成覆盖率报告 poetry run pytest --cov=src --cov-report=html # 运行特定测试文件 python tests/test_baidu_auth.py ``` ### 测试文件说明 - `tests/test_baidu_auth.py` - 百度网盘认证功能测试 - `tests/test_logging_system.py` - 日志系统测试 - `tests/test_task_2_1_logic.py` - 任务2.1逻辑测试 - `run_tests.py` - 统一测试运行器 ### 代码质量标准 - **代码格式**: 使用Black进行代码格式化 - **导入排序**: 使用isort进行导入排序 - **代码检查**: 使用flake8进行代码质量检查 - **类型检查**: 使用mypy进行静态类型检查 - **测试覆盖率**: 要求测试覆盖率达到80%以上 ## 配置文件说明 ### 环境变量 (.env) ```env # SiliconFlow API配置 SILICONFLOW_API_KEY=your_api_key_here # 日志配置 LOG_LEVEL=INFO # 代理配置 PROXY_ENABLED=true PROXY_TYPE=socks5 PROXY_HOST=127.0.0.1 PROXY_PORT=10801 ``` ### 主配置文件 (config.yaml) ```yaml browser: headless: false timeout: 30000 proxy: enabled: true type: "socks5" # 或 "http" host: "127.0.0.1" port: 10801 ai: api_key: "${SILICONFLOW_API_KEY}" base_url: "https://api.siliconflow.cn/v1" model: text: "Qwen/Qwen2.5-72B-Instruct" vision: "Qwen/Qwen2.5-VL-72B-Instruct" logging: level: "INFO" file: "logs/gamer520.log" ``` ## 故障排除 ### 常见问题 1. **浏览器启动失败** - 确保已安装Playwright浏览器:`poetry run playwright install chromium` - 检查系统权限和防火墙设置 2. **代理连接失败** - 确认代理服务器正在运行 - 检查代理配置是否正确 - 尝试切换代理类型(SOCKS5/HTTP) 3. **AI服务调用失败** - 检查API密钥是否正确 - 确认网络连接正常 - 查看API配额是否充足 4. **页面元素识别失败** - 检查目标网站是否有结构变化 - 查看日志文件获取详细错误信息 - 尝试更新AI模型版本 ### 日志文件 日志文件位于 `logs/gamer520.log`,包含详细的运行信息和错误记录。 ## 贡献指南 1. Fork项目 2. 创建功能分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 开启Pull Request ## 许可证 本项目仅供学习和个人使用,请遵守相关网站的使用条款。 ## 更新日志 ### v0.1.0 (2024-01-XX) - 初始版本发布 - 实现基础的自动化流程 - 支持AI视觉识别 - 添加代理配置支持 ## 联系方式 如有问题或建议,请通过以下方式联系: - 项目Issues: [GitHub Issues](项目地址/issues) - 邮箱: team@gamer520.com --- **注意**: 本工具仅供学习和个人使用,请确保遵守目标网站的使用条款和相关法律法规。