如何半自动购票
本文尚处于草稿状态,内容可能不完整或存在错误
我们的目标
在完成基础信息填写后,成功让脚本完成购票流程
因为需要运行命令,所以还属于半自动范畴,后续我们会介绍 定时运行脚本 的方法,真正实现全自动购票
开始之前
- 良好的网络环境(已开启 终端代理 )
- 已安装 Git 和 Python
- 已获取到有效 Cookie(建议使用 Playwright 自动获取)
动手操作
检查基本环境
Write-Host "【代理环境变量】"; $env:http_proxy; $env:https_proxy; `
Write-Host "`n【Git 版本】"; git --version; `
Write-Host "`n【Python 版本】"; python --version; `
Write-Host "`n【pip 版本】"; pip --version【代理环境变量】
http://127.0.0.1:7897
http://127.0.0.1:7897
【Git 版本】
git version 2.53.0.windows.2
【Python 版本】
Python 3.14.3
【pip 版本】
pip 25.3 from C:\Users\ztm0929\scoop\apps\python\current\Lib\site-packages\pip (python 3.14)获取源码并初始化
git clone https://github.com/Matt-Dong123/tools4szu.git由于项目没有自动依赖文件(requirements.txt),我们需要手动安装脚本运行所需的 requests、pandas 和 openpyxl 这三个库。
cd tools4szu/venue-helper
python -m venv venv
venv\Scripts\activate
pip install requests pandas openpyxl安装完成后,建议运行 pip list 检查依赖是否安装成功。我们应该能看到如下列表,如果缺少某个库,请重新运行安装命令。
pip listPackage Version
------------------ -----------
certifi 2026.2.25
charset-normalizer 3.4.6
et_xmlfile 2.0.0
idna 3.11
numpy 2.4.3
openpyxl 3.1.5
pandas 3.0.1
pip 25.3
python-dateutil 2.9.0.post0
requests 2.33.0
six 1.17.0
tzdata 2025.3
urllib3 2.6.3运行脚本
python main.py运行成功后,它将会返回类似下面的输出:
2026-03-27 02:13:29,856 - INFO - 开始预约: {'CGDM': '009', 'XMDM': '004', 'CDWID': '89d7005a36f341a39d89354d659b639d', 'XQWID': '1', 'KYYSJD': '13:00-14:00', 'YYRQ': '2026-03-27', 'YYLX': '1.0'}
2026-03-27 02:13:30,817 - INFO - 预约结果: {"code":"0","msg":"成功","data":{"DHID":"202603270213296381"}}
2026-03-27 02:13:31,018 - INFO - 开始预约: {'CGDM': '009', 'XMDM': '004', 'CDWID': '2b375360778a4978922e48b34d772947', 'XQWID': '1', 'KYYSJD': '13:00-14:00', 'YYRQ': '2026-03-27', 'YYLX': '1.0'}
2026-03-27 02:13:31,254 - INFO - 预约结果: {"logId":"19e190aa096b46e3a2df20ce2e63f60e","code":"#E111080000000","msg":" 您已预约该场地的相同时间段,请选择其他时段"}
2026-03-27 02:13:31,457 - INFO - 开始预约: {'CGDM': '009', 'XMDM': '004', 'CDWID': '89d7005a36f341a39d89354d659b639d', 'XQWID': '1', 'KYYSJD': '12:00-13:00', 'YYRQ': '2026-03-27', 'YYLX': '1.0'}
2026-03-27 02:13:31,703 - INFO - 预约结果: {"logId":"19de4424dfa84f0ca8afd938d5c7db5c","code":"#E111080000000","msg":" 抱歉,您来迟了。该时段的预约已满,请选择其他时段进行预约"}
2026-03-27 02:13:31,906 - INFO - 开始预约: {'CGDM': '009', 'XMDM': '004', 'CDWID': '2b375360778a4978922e48b34d772947', 'XQWID': '1', 'KYYSJD': '12:00-13:00', 'YYRQ': '2026-03-27', 'YYLX': '1.0'}
2026-03-27 02:13:32,142 - INFO - 预约结果: {"logId":"1a7337efffd7404b84da50e6f32a1ad7","code":"#E111080000000","msg":" 抱歉,您来迟了。该时段的预约已满,请选择其他时段进行预约"}总结回顾
总结一下,我们要做的事情就是:
- 检查环境:确保网络代理和必要的软件(Git、Python)已正确安装和配置
- 获取源码并安装依赖:从 GitHub 克隆项目,创建虚拟环境,并安装所需的 Python 库
- 配置购票参数:根据目标场馆和项目,修改脚本中的参数(
courses、stuid、stuname、cookies)以匹配准备预约的时间和场地 - 运行脚本:执行 Python 脚本,让它自动完成购票流程
常见问题
继续探索
- 用 Playwright 自动打开浏览器并登录,用于获取 Cookie
- 用「任务计划程序」定时运行脚本(图形化界面 或 命令行界面)
最后更新于