欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 八卦 > 南昌大学(NCU)羽毛球场地预约脚本

南昌大学(NCU)羽毛球场地预约脚本

2025/9/15 8:59:19 来源:https://blog.csdn.net/2201_75538245/article/details/144200415  浏览:    关键词:南昌大学(NCU)羽毛球场地预约脚本

        在冬天进行羽毛球运动是一个很好的选择,它能帮助你保持身体活力,增强心肺功能,并促进血液循环。但是室友和师弟师妹反应,学校的羽毛球场地有限,手速慢的根本预约不到场地。

       中午12:00准时开放预约,1秒钟不到,就只剩下08:00-09:00和12:00-13:00的不好的时间段,如果想要预约到晚上19:00-21:00的黄金时间段就需要用脚本了。

2980ede8085b4a45ae09600fdb6a7df2.png

 一、Python代码

 1. 导入工具包

import requests
import time

2.  输入用户名和密码

session = requests.Session()  # 用于存储 Cookie
account = ['402201314520']  #  用户名
password = ['1234567']  #  密码
time1 = time.time()  # 记录初始时间

 3. 场馆登入URL

for i in range(1):login_url = 'https://cas.ncu.edu.cn:8443/cas/login?service=http%3A%2F%2Fndyy.ncu.edu.cn%3A8089%2Fcas%2Flogin'  # 场馆登入URLheaders = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0'}data1 = {'name': account[i], 'pwd': password[i], }  # 可用于多个账号的预约login = session.get(login_url, headers=headers, data=data1)  # 登入操作print(login)# print(login.text)  # 打印是否登入成功

 4. 预约

    t = 1   # 用于12:00前的不断刷新预约界面while t == 1:try:for j in range(2):  # 预约次数,即几个时间段'''url1 中的参数role=ROLE_STUDENT       # 表示学生身份date=2024-12-03         # 预约日期startTime=08:00-09      # 预约时间areaName=%E7%BE%BD%E6%AF%9B%E7%90%8312%E5%8F%B7%E5%9C%BA%E5%9C%B0  # “羽毛球12号场地”这几个中文的URL编码  其实不同场地也就是 %8312% 不同,如: %831% 表示 “羽毛球1号场地”areaNickname=hall12     # “羽毛球12号场地”  的英文名称'''url1 = ['https://ndyy.ncu.edu.cn/api/badminton/saveReservationInformation?role=ROLE_STUDENT&date=2024-12-03&startTime=08:00-09:00&areaName=%E7%BE%BD%E6%AF%9B%E7%90%8312%E5%8F%B7%E5%9C%BA%E5%9C%B0&areaNickname=hall12','https://ndyy.ncu.edu.cn/api/badminton/saveReservationInformation?role=ROLE_STUDENT&date=2024-12-04&startTime=08:00-09:00&areaName=%E7%BE%BD%E6%AF%9B%E7%90%831%E5%8F%B7%E5%9C%BA%E5%9C%B0&areaNickname=hall1']headers4 = {"Host":'ndyy.ncu.edu.cn','Referer':'https://ndyy.ncu.edu.cn/booking',"accept":'application/json, text/plain, */*',# "token" 一段时间会失效,需要经常更换"token":'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE3MzMxNjM0MDcsInVzZXJOYW1lIjoi546L5L2z5aiBIiwidXNlciI6IjQwMjIwMDIzMDEyNSIsInR5cGVDb2RlIjoiUzAxIn0.tW5jNDSuPIwEHoXnTjx_0hHpV8yTdqC2i4ad2Rcg1hs','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0'}order = session.get(url=url1[j],headers=headers4)  # 预约print(order.text)if int(order.text['msg']) == None:  # 如果预约成功就为Ture,否则就会不断进行While循环,直到预约成功t = 0except:t = 1
time2 = time.time() # 预约成功后的时间
print(time2-time1) # 打印用时

“token” 更新 ----F12键打开开发者界面 c4fca9ec54414077988fed6128190dad.png

二、总代码 

import requests
import timesession = requests.Session()  # 用于存储 Cookie
account = ['402201314520']  #  用户名
password = ['1234567']  #  密码
time1 = time.time()  # 记录初始时间for i in range(1):login_url = 'https://cas.ncu.edu.cn:8443/cas/login?service=http%3A%2F%2Fndyy.ncu.edu.cn%3A8089%2Fcas%2Flogin'  # 场馆登入URLheaders = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0'}data1 = {'name': account[i], 'pwd': password[i], }  # 可用于多个账号的预约login = session.get(login_url, headers=headers, data=data1)  # 登入操作print(login)# print(login.text)  # 打印是否登入成功t = 1   # 用于12:00前的不断刷新预约界面while t == 1:try:for j in range(2):  # 预约次数,即几个时间段'''url1 中的参数role=ROLE_STUDENT       # 表示学生身份date=2024-12-03         # 预约日期startTime=08:00-09      # 预约时间areaName=%E7%BE%BD%E6%AF%9B%E7%90%8312%E5%8F%B7%E5%9C%BA%E5%9C%B0  # “羽毛球12号场地”这几个中文的URL编码  其实不同场地也就是 %8312% 不同,如: %831% 表示 “羽毛球1号场地”areaNickname=hall12     # “羽毛球12号场地”  的英文名称'''url1 = ['https://ndyy.ncu.edu.cn/api/badminton/saveReservationInformation?role=ROLE_STUDENT&date=2024-12-03&startTime=08:00-09:00&areaName=%E7%BE%BD%E6%AF%9B%E7%90%8312%E5%8F%B7%E5%9C%BA%E5%9C%B0&areaNickname=hall12','https://ndyy.ncu.edu.cn/api/badminton/saveReservationInformation?role=ROLE_STUDENT&date=2024-12-04&startTime=08:00-09:00&areaName=%E7%BE%BD%E6%AF%9B%E7%90%831%E5%8F%B7%E5%9C%BA%E5%9C%B0&areaNickname=hall1']headers4 = {"Host":'ndyy.ncu.edu.cn','Referer':'https://ndyy.ncu.edu.cn/booking',"accept":'application/json, text/plain, */*',# "token" 一段时间会失效,需要经常更换"token":'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE3MzMxNjM0MDcsInVzZXJOYW1lIjoi546L5L2z5aiBIiwidXNlciI6IjQwMjIwMDIzMDEyNSIsInR5cGVDb2RlIjoiUzAxIn0.tW5jNDSuPIwEHoXnTjx_0hHpV8yTdqC2i4ad2Rcg1hs','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0'}order = session.get(url=url1[j],headers=headers4)  # 预约print(order.text)if int(order.text['msg']) == None:  # 如果预约成功就为Ture,否则就会不断进行While循环,直到预约成功t = 0except:t = 1
time2 = time.time() # 预约成功后的时间
print(time2-time1) # 打印用时

 结果:

<Response [200]>  # 表示登入成功
{"code":"200","msg":""}  # 表示第一个时间段的URL预约成功
{"code":"601","msg":"失败,请尝试刷新页面!"}  # 预约失败的URL,会不断刷新,直到成功
{"code":"601","msg":"失败,请尝试刷新页面!"}
{"code":"601","msg":"失败,请尝试刷新页面!"}
{"code":"601","msg":"失败,请尝试刷新页面!"}
{"code":"601","msg":"失败,请尝试刷新页面!"}

e09c6bcc3b144f1cb73f27fa0c6b23a1.gif

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词