72 lines
2.4 KiB
Markdown
72 lines
2.4 KiB
Markdown
|
|
# 大麦网抢票工具
|
|||
|
|
|
|||
|
|
基于 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`)
|
|||
|
|
- 仅限个人学习研究使用
|