个人头像ztm0929

如何半自动购票

本文尚处于草稿状态,内容可能不完整或存在错误

我们的目标

在完成基础信息填写后,成功让脚本完成购票流程
因为需要运行命令,所以还属于半自动范畴,后续我们会介绍 定时运行脚本 的方法,真正实现全自动购票

开始之前

动手操作

检查基本环境

Windows Terminal(终端)
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)

获取源码并初始化

Windows Terminal(终端)
git clone https://github.com/Matt-Dong123/tools4szu.git

由于项目没有自动依赖文件(requirements.txt),我们需要手动安装脚本运行所需的 requestspandasopenpyxl 这三个库。

Windows Terminal(终端)
cd tools4szu/venue-helper
python -m venv venv
venv\Scripts\activate
pip install requests pandas openpyxl

安装完成后,建议运行 pip list 检查依赖是否安装成功。我们应该能看到如下列表,如果缺少某个库,请重新运行安装命令。

Windows Terminal(终端)
pip list
Package            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

配置购票参数

运行脚本

Windows Terminal(终端)
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":" 抱歉,您来迟了。该时段的预约已满,请选择其他时段进行预约"}

总结回顾

总结一下,我们要做的事情就是:

  1. 检查环境:确保网络代理和必要的软件(Git、Python)已正确安装和配置
  2. 获取源码并安装依赖:从 GitHub 克隆项目,创建虚拟环境,并安装所需的 Python 库
  3. 配置购票参数:根据目标场馆和项目,修改脚本中的参数(coursesstuidstunamecookies)以匹配准备预约的时间和场地
  4. 运行脚本:执行 Python 脚本,让它自动完成购票流程

常见问题

继续探索

  • Playwright 自动打开浏览器并登录,用于获取 Cookie
  • 用「任务计划程序」定时运行脚本(图形化界面 或 命令行界面

最后更新于

目录