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