NEPU 网页版选课系统自动查询工具

该工具使用 Python 的 Tkinter 库和 Requests 库开发,可以帮助用户快速查询 NEPU 网页版选课系统的课程信息。

使用方法:

  1. 获取必要的参数:
    • _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 值。
  2. 在程序窗口中分别输入这三个参数,并点击“确定”按钮。
  3. 程序会自动查询课程信息,并将结果显示在列表框中。

代码:

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: 初始版本。
NEPU 网页版选课系统自动查询工具

原文地址: https://www.cveoy.top/t/topic/ndl9 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录