NEPU 网页版选课系统自动查询工具
NEPU 网页版选课系统自动查询工具
该工具使用 Python 的 Tkinter 库和 Requests 库开发,可以帮助用户快速查询 NEPU 网页版选课系统的课程信息。
使用方法:
- 获取必要的参数:
- _webvpn_key: 登录 NEPU 后,在浏览器地址栏中
https://jwgl.webvpn.nepu.edu.cn/后?后的所有内容。 - JSESSIONID1: 在登录 NEPU 后,在浏览器开发者工具 Network 面板中,找到
https://jwgl.webvpn.nepu.edu.cn/new/student/xsqjsq/datas请求,在 Request Headers 中查看 JSESSIONID 值。 - JSESSIONID2: 在浏览器开发者工具 Application 面板中,找到 Cookies,找到 JSESSIONID 值。
- _webvpn_key: 登录 NEPU 后,在浏览器地址栏中
- 在程序窗口中分别输入这三个参数,并点击“确定”按钮。
- 程序会自动查询课程信息,并将结果显示在列表框中。
代码:
import tkinter as tk
import requests
def sendtoserver(_webvpn_key, JSESSIONID1, JSESSIONID2):
cookies = {
'_webvpn_key': 'eyJhbGciOiJIUzI1NiJ9.eyJ1c2VyIjoiMjAwNTAyMTQwMjI0IiwiZ3JvdXBzIjpbMTIxLDFdLCJpYXQiOjE2ODA4Nzk5ODMsImV4cCI6MTY4MDk2NjM4M30.NbCh7GQDfdGMmEKg-2CRw6vGuuhGvuyClzsXWkL4TMY',
'webvpn_username': '200502140224%7C1680879983%7C92b70d0a01a6b70b67df9fb695a05fe64f574000',
'JSESSIONID': '88E5F0A4D2E6C19117A295797417F737',
}
headers = {
'authority': 'jwgl.webvpn.nepu.edu.cn',
'accept': 'application/json, text/javascript, */*; q=0.01',
'accept-language': 'zh-CN,zh;q=0.9',
'content-type': 'application/x-www-form-urlencoded; charset=UTF-8',
'dnt': '1',
'origin': 'https://jwgl.webvpn.nepu.edu.cn',
'referer': 'https://jwgl.webvpn.nepu.edu.cn/new/student/xsqjsq',
'sec-ch-ua': ''Google Chrome';v='111', 'Not(A:Brand';v='8', 'Chromium';v='111'',
'sec-ch-ua-mobile': '?0',
'sec-ch-ua-platform': ''macOS'',
'sec-fetch-dest': 'empty',
'sec-fetch-mode': 'cors',
'sec-fetch-site': 'same-origin',
'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36',
'x-requested-with': 'XMLHttpRequest',
}
data = {
'page': '1',
'rows': '20',
'sort': 'k501.cjsj',
'order': 'desc',
}
response = requests.post('https://jwgl.webvpn.nepu.edu.cn/new/student/xsqjsq/datas', cookies=cookies, headers=headers, data=data)
print(response.text)
res_json=response.json()
bingding = []
for i in res_json['rows']:
print(i['qsrq'],i['qssj'],i['jsrq'],i['jssj'],i['bz'])
bingding.append(i['qsrq']+' '+i['qssj']+' '+i['jsrq']+' '+i['jssj']+' '+i['bz']+'sqdm:'+i['sqdm'])
return bingding
def on_submit():
# 获取文本框的值并调用sendtoserver函数
_webvpn_key = entry1.get()
JSESSIONID1 = entry2.get()
JSESSIONID2 = entry3.get()
result = sendtoserver(_webvpn_key, JSESSIONID1, JSESSIONID2)
# 在列表框中添加返回结果
for i in result:
listbox.insert(tk.END, i)
# 创建主窗口和文本框
window = tk.Tk()
window.title('Send to Server')
label1 = tk.Label(window, text='_webvpn_key:')
label1.grid(row=0, column=0)
entry1 = tk.Entry(window)
entry1.grid(row=0, column=1)
label2 = tk.Label(window, text='JSESSIONID1:')
label2.grid(row=1, column=0)
entry2 = tk.Entry(window)
entry2.grid(row=1, column=1)
label3 = tk.Label(window, text='JSESSIONID2:')
label3.grid(row=2, column=0)
entry3 = tk.Entry(window)
entry3.grid(row=2, column=1)
# 创建确定按钮
submit_button = tk.Button(window, text='确定', command=on_submit)
submit_button.grid(row=3, column=0, columnspan=2)
# 创建列表框
listbox = tk.Listbox(window)
listbox.grid(row=5, column=0, columnspan=5)
# 进入主循环
window.mainloop()
注意:
- 该程序仅供参考,请不要在实际环境中使用。
- 请勿在未经授权的情况下访问 NEPU 网站。
- 本工具仅用于学习和研究目的,请勿用于任何非法活动。
免责声明:
本工具的开发者对使用本工具产生的任何后果概不负责。
版权:
本工具的版权归其开发者所有。
联系方式:
如需联系开发者,请发送电子邮件至 developer_email@example.com。
更新日志:
- 2023-04-01: 初始版本。
原文地址: https://www.cveoy.top/t/topic/ndl9 著作权归作者所有。请勿转载和采集!