正方教务系统——用Postman优雅的选课
一.引言
由于每個學期開學都要在學校的土豆服務器上進行搶課大戰(總搶不到),我對學校的教務系統(正方教務系統V-8.1.3)早已深惡痛絕,因此,去年用python模擬登陸(selenium)寫了個網課撿漏的腳本(當有同學退課時,由于腳本一直運行,因此可以迅速選上)。本以為這學期我的腳本就可以大展身手,哪知道今年學校突然說改變選課方案,改為分年級分時段選課且只允許選課不允許退課,這就代表了,我的撿漏腳本被宣判死刑了。
但只要思想不滑坡,方法總比困難多,經過我的不懈努力,最終成功實現如下效果:
- 當只允許高年級選課時,低年級可突破限制,與高年級一同選課
- 突破不允許退課限制,自由退課
二.前提條件
有一個可以正常進行通識選修課選課的賬號A
有一個可以進行主修課選課,但不允許選修課選課的賬號B(簡易版教程需要,進階版教程不需要)
ps:限制還是挺多的,但是事實上只要知道了選修課對應的xkkz_id,就可以直接通過Postman為所欲為了
三.使用到的工具
- Postman
- Chrome瀏覽器
- 高年級的賬號(允許進行網課選取的賬號)
- 低年級的賬號(不允許進行網課選取的賬號)
- 正方教務系統選課接口文檔說明
四.教程
簡易版
1.登陸高年級賬號,進入選課界面,點擊通識選修課
2.F12打開開發者工具,復制xkkz_id的value值
3.登錄低年級賬號,進入選課界面,F12打開開發者工具,將代碼中的xkkz_id的value值替換為上面復制的值
4.將kklxdm的value值改為10
5.將njdm_id的value值改為 允許進行選課的年級,如現在允許2019級進行選課,則改為2019
在本示例中,由于高年級賬號為2019級的,因此將njdm_id改為2019
6.回到頁面,點擊搜索鍵,發現出現的課程為通識選修課,且可以正常進行選課
進階版
1.同簡易版一樣,登陸高年級賬號先把xkkz_id的值復制了,后面會用到
2.登錄低年級賬號,進入選課界面,F12進入開發者工具,點擊Network,刷新界面,找到含Cookie的請求,查看Cookie,復制JESSIONID值
3.打開Postman,新建Post請求用于搜索課程,具體如下:
請求地址:
https://XXXXX/xsxk/zzxkyzb_cxZzxkYzbPartDisplay.html請求頭:
JSESSIONID為第二步復制的值
Cookie:JSESSIONID=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
請求參數:
| xkxnm | 2021 | 當前學期年份如2021-2022 即2021 | ? |
| xkxqm | 12 | 定值 | ? |
| kklxdm | 10 | 01為主修課 10為選修課 | ? |
| kspage | 1 | 頁號 | ? |
| jspage | 10 | 一頁顯示的數量 | ? |
| filter_list[0] | XXX | 搜索的課程名稱 |
效果如下:
4.找到要選擇的課程,復制其kch_id
5.新建請求,用于顯示課程具體信息,具體參數如下:
請求地址:
https://XXXXX/xsxk/zzxkyzbjk_cxJxbWithKchZzxkYzb.html請求頭:
JSESSIONID為第二步復制的值
Cookie:JSESSIONID=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
請求參數:
| bklx_id | 0 | 定值 | ? |
| njdm_id | 2019 | 年級代碼(允許正常選課的年級) | ? |
| xkxnm | 2021 | 當前學期年份如2021-2022 即2021 | ? |
| xkxqm | 12 | 定值 | ? |
| kklxdm | 10 | 10為選修課01為主修課 | ? |
| kch_id | XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX | 課程號(第四步復制的) | ? |
| xkkz_id | D824D824D824D824D824D824D824D824 | 第一步復制的值 | ? |
效果如下:
6.復制do_jxb_id
7.新建請求,用于進行選課,具體參數如下:
請求地址:
https://XXXXX/xsxk/zzxkyzbjk_xkBcZyZzxkYzb.html請求頭:
JSESSIONID為第二步復制的值
Cookie:JSESSIONID=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
請求參數:
| jxb_ids | 7cad8a50a08b2c9…(共257個字符) | 教學班號(動態刷新) 第六步復制的值 | ? |
| kch_id | XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX | 課程號(第四步復制的) | ? |
| qz | 0 | 定值 | ? |
效果如下:
若flag==1則表示選課成功
教程結束,總的流程差不多就是這個樣子,總體而言可玩性非常高,太刑了👀
我寫了相對更全更完整的正方教務系統的接口文檔說明,已選課程查詢接口和退課接口可移步文檔查看
文檔地址:正方教務系統選課接口文檔說明
🎈文檔持續更新中,歡迎Star
希望對你有幫助,謝謝!
PS:教程僅供開發交流使用,禁止用于個人盈利!
總結
以上是生活随笔為你收集整理的正方教务系统——用Postman优雅的选课的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大班科学计算机的发明应用教案,大班科学活
- 下一篇: 加速度计补偿: