教务系统请假删除助手 - 轻松删除请假记录
import tkinter as tk import requests
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', }
def sendtoserver(_webvpn_key, JSESSIONID1, webvpn_username): cookies['_webvpn_key'] = _webvpn_key cookies['JSESSIONID'] = JSESSIONID1 cookies['webvpn_username'] = webvpn_username
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() webvpn_username = entry3.get() result = sendtoserver(_webvpn_key, JSESSIONID1, webvpn_username)
# 清空列表框中的内容
listbox.delete(0, tk.END)
# 在列表框中添加返回结果
for i in result:
listbox.insert(tk.END, i)
def on_delete(): # 获取选中的信息并调用del函数 selection = listbox.curselection() if selection: sqdm = listbox.get(selection[0]).split('sqdm:')[1] del_function(sqdm)
# 从列表框中删除选中的信息
listbox.delete(selection)
def del_function(sqdm): data = { 'action': '1', # 1:新增 2:修改 3:删除 'pk': sqdm, 'qsrq': '2023-04-08', # 请假开始日期 'jsrq': '2023-04-08', # 请假结束日期 'qsjcdm': '01', 'jsjcdm': '01', 'qjxss': '1', # 请假小时数 'qjlxdm': '02', # 请假类型 'ts': '0.08', # 请假天数 'bz': '生病', # 请假事由 'sflx': '1', # 是否连续 'sfxwzs': '0', # 是否校外住宿 'filename': '', 'filepath': '', }
response = requests.post('https://jwgl.webvpn.nepu.edu.cn/new/student/xsqjsq/update', cookies=cookies, headers=headers, data=data)
print(response.text)
response1 = requests.post('https://jwgl.webvpn.nepu.edu.cn/new/student/xsqjsq/delete', cookies=cookies, headers=headers, data=data)
print(response1.text)
创建主窗口和文本框
window = tk.Tk() window.title('删除请假助手') 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='webvpn_username:') 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) delete_button = tk.Button(window, text='删除', command=on_delete) delete_button.grid(row=4, column=0, columnspan=2)
创建帮助按钮
help_button = tk.Button(window, text='帮助', command=open_help) help_button.grid(row=5, column=0, columnspan=2)
创建列表框
listbox = tk.Listbox(window) listbox.grid(row=6, column=0, columnspan=5)
定义帮助页面
def open_help(): help_window = tk.Toplevel(window) help_window.title('帮助')
help_text = '1. 登录网页版教务系统
- 按下F12,在右侧选项卡中找到应用程序
- 复制每个值到程序的文本框中
- 点击确定按钮
- 选中想要删除的请假条目
- 点击删除按钮' help_label = tk.Label(help_window, text=help_text) help_label.pack()
进入主循环
window.mainloop()
原文地址: https://www.cveoy.top/t/topic/ndn2 著作权归作者所有。请勿转载和采集!