正方教务系统——用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
则表示选课成功
教程结束,总的流程差不多就是这个样子,总体而言可玩性非常高,太刑了
正方教务系统——用Postman优雅的选课相关推荐
- 用 Python 实现模拟登录正方教务系统抢课
(点击上方蓝字,快速关注我们) 作者:小苏打 https://vhyz.me/2018/06/12/用Python实现模拟登录正方教务系统抢课/ 最近学校开始选课,但是如果选课时间与自己的事情冲突,这 ...
- 用Python实现模拟登录正方教务系统抢课
最近学校开始选课,但是如果选课时间与自己的事情冲突,这时候就可以使用Python脚本自助抢课,抢课的第一步即是模拟登录,需要模拟登录后保存登录信息然后再进行操作. 而且整个流程是比较简单,这是因为正方 ...
- asp 退出登录修改cookie能进入后台_用Python实现模拟登录正方教务系统抢课
6月23日更新:由于国内高校正方教务系统或多或少都会有所不同,所以细节地方还是需要自己修改的,我这个过程也只是一个案例,但这其中的本质上是不变的,即是抓包分析. 如果有什么不懂的,可以在评论区评论,或 ...
- python抢课脚本 验证码_用Python实现模拟登录正方教务系统抢课
最近学校开始选课,但是如果选课时间与自己的事情冲突,这时候就可以使用Python脚本自助抢课,抢课的第一步即是模拟登录,需要模拟登录后保存登录信息然后再进行操作. 而且整个流程是比较简单,这是因为正方 ...
- python模拟登录教务系统_用Python实现模拟登录正方教务系统抢课
最近学校开始选课,但是如果选课时间与自己的事情冲突,这时候就可以使用Python脚本自助抢课,抢课的第一步即是模拟登录,需要模拟登录后保存登录信息然后再进行操作. 而且整个流程是比较简单,这是因为正方 ...
- ZUCC 正方教务系统 抢课脚本 抢课流程实现
ZUCC 正方教务系统 抢课脚本 抢课流程实现 新版ZUCC正方教务系统抢课脚本的流程分析与实现,文章结尾有完整项目的所有代码. 个人博客文章链接 流程分析 账号登录进入首页 模拟请求进入计划内选课界 ...
- python爬虫学校正方教务系统获取全部成绩
python爬虫正方教务系统许昌学院 来自许昌学院的大四小菜鸡,疫情封在宿舍,闲来无事在宿舍爬了一下之前没成功的教务系统爬虫,当时觉得挺难的,今天发现这个还是挺简单的,这个程序参考了很多前辈大佬们的程 ...
- php模拟登陆青果教务系统,模拟登录 - php CURL模拟登陆正方教务系统
代码如下 $cookie_file = tempnam('./temp','cookie'); $login_url = 'http://211.64.47.129/default_ysdx.aspx ...
- 基于Python 3.11.0版本模拟登录并爬取西安理工大学正方教务系统的学分绩点并计算
目录 使用软件以及运行环境 对于环境的搭建 代码思路 需要导入的包 模拟登录 爬取数据 绩点计算器 功能一 功能二 完整代码 使用软件以及运行环境 win10系统,Vs Code软件,Python 3 ...
最新文章
- JPA学习(6)JPQL
- 23种设计模式的有趣见解 .
- VISIO2010界面介绍
- 日期/时间格式/解析,Java 8样式
- Windows10下手工强制清理删掉安装版的JRE8导致java.exe无法运行的解决办法
- eoLinker-AMS接口管理系统
- 别双击闪存盘 惊醒病毒就不得了
- python学生信息管理
- 以mysql为例的数据字典_建立数据字典
- 如何将JavaScript中的JSON字符串转换为JSON对象数组?
- 在苹果Mac中如何修改图片格式?
- 一文学会Maven私服的搭建
- 树莓派智能小车资料整理
- 校园助手APP--简介及框架
- eclipse快捷键——复制当前行到上一行或者下一行
- python学习笔记_week14
- 五、settings 文件
- 学完Python的7大就业方向,哪个赚钱多?
- 欺骗的艺术——第二部分(2)
- 如何让Fresco支持HEIF/HEIC图片格式
热门文章
- C语言/C++常见习题问答集锦之哆啦A梦
- 【进村记】电子产品实体店的几大骗术分析
- Colab 上使用shutil.copytree()复制整个文件夹到另一个文件夹
- Android摄像头:只拍摄SurfaceView预览界面特定区域内容(矩形框)---完整(原理:底层SurfaceView+上层绘制ImageView)...
- Kubernetes(K8s)基本概念:HPA(Pod横向自动扩容)、StatefulSet
- multisim仿真 74LS147D芯片
- 福禄克LinkIQ™智能链路通线缆网络测试仪功能介绍
- 腾讯云服务器地域怎么选?地域可用区选择四大因素
- Matlab谐波搭建
- 计算机桌面上的软件是内存上吗,电脑软件运行提示内存不足,占内存小的游戏-...