# 大麦网抢票工具 基于 Selenium 的大麦网自动抢票脚本,支持定时开抢、多账户并发、验证码处理。 ## 功能 - **自动抢票**:自动选日期→场次→票价→提交订单 - **定时开抢**:NTP 时间校准,精确到毫秒级触发 - **多账户**:支持多账号并发抢票 - **验证码**:自动检测和处理滑块验证码 - **Cookie 持久化**:扫码登录后自动保存/加载 Cookie - **反检测**:隐藏 webdriver 痕迹,移动端模拟 ## 快速开始 ```bash # 1. 安装依赖 pip install selenium ntplib Pillow # 2. 下载 chromedriver(匹配你的 Chrome 版本) # https://googlechromelabs.github.io/chrome-for-testing/ # 3. 编辑配置 cp config/config.json config/my_config.json # 修改 target_url、date、sess、price 等参数 # 4. 运行(首次需要扫码登录) python ticket_script.py config/my_config.json ``` ## 配置说明 ```json { "date": [1, 2], // 日期优先级序号 (1-based) "sess": [1, 2], // 场次优先级序号 (1-based) "price": [1, 2, 3], // 票价优先级序号 (1-based) "ticket_num": 2, // 购买张数 "viewer_person": [1, 2], // 观影人序号 (1-based) "nick_name": "", // 用户昵称 "driver_path": "/usr/local/bin/chromedriver", "damai_url": "https://www.damai.cn/", "target_url": "https://m.damai.cn/damai/detail/item.html?itemId=xxx", "max_retries": 180, // 最大重试次数 "retry_delay": 0.3 // 重试间隔(秒) } ``` ## 项目结构 ``` ├── ticket_script.py # 核心抢票逻辑 ├── scripts/ │ ├── main.py # 主入口(单/多账户) │ ├── selenium_driver.py # 浏览器驱动工厂 │ ├── captcha_solver.py # 验证码检测与处理 │ ├── scheduler.py # 定时调度与 NTP 校时 │ ├── multi_account_manager.py # 多账户管理 │ └── mock_dependency_manager.py # GUI 依赖模拟 ├── GUI.py # Tkinter 配置界面 └── config/ ├── config.json # 默认配置 └── demo_config.json # 示例配置 ``` ## 说明 - 首次运行会打开浏览器,需要手动扫码登录 - 登录成功后 Cookie 会保存到 `cookies.pkl`,下次自动加载 - 支持通过 GUI 界面编辑配置(`python GUI.py`) - 仅限个人学习研究使用