之前通宵做了个全流程通过代码实现选课,但是很遗憾最后并没有完美实现,最后参数校验失败,所以做了个简易版。
简易版:
自己提前登录选课页面,开启网络流量记录(F12),点击抢课,将捕捉到的选课信息复制到代码中,点击运行代码,即可实现自动选课。
使用结果:
代码:
import requests
import time
def f1():
url = "http://xkfw.xasyu.cn/xsxk/elective/clazz/add"
headers = {
"Accept": "application/json, text/plain, */*",
"Accept-Encoding": "gzip, deflate",
"Accept-Language": "zh-CN,zh;q=0.9",
"Authorization": "eyJhbGciOiJIUzUxMiJ9.eyJ0aW1lIjoxNzEyODIwODMwNDSPASLnN-A",# 需要修改
"Connection": "keep-alive",
"Content-Type": "application/x-www-form-urlencoded",
"Cookie": "Authorization=eyJhbGciOiJIUzUxMiJ9.eyJ0aW1lIjoxNzEyODIN-A",# 需要修改
"DNT": "1",
"Host": "xkfw.xasyu.cn",# 需要修改
"Origin": "http://xkfw.xasyu.cn",# 需要修改
"Referer": "http://xkfw.xasyu.cn/xsxk/elective/grablessons?batchId=1a32a677f1b444b98b6d099e1bbb3daf",# 需要修改
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36",
"batchId": "1a32a677f1b444b98b6d099e1bbb3daf"# 需要修改
}
# 你需要将你的POST数据填充到这里
data = {
'clazzType': 'XGKC',# 需要修改
'clazzId': '202320242011034001',# 需要修改
'secretVal': 'mqc39vtOiCaBJY2Im9fDy6aIDOYvkMle1udcaV1xnbXaPAYHbU2ttwxYCKnVFGafhTPuB+C3Bm6c+4/bgmFvN6'# 需要修改
}
response = requests.post(url, headers=headers, data=data)
# 打印响应内容
print(response.text)
if __name__ == "__main__":
print("此程序为源星光子编写,为交流学习使用,请于下载后24小时内删除")
while True:
f1()
time.sleep(1) # 等待1秒
# 如果需要抢多个课,可以将上面的代码复制多次,然后修改data中的数据即可