写在前面

博主登陆现在还可以正常使用,但是后面登陆成功,获取信息啥的有问题

登陆还是按照学长的来,模拟登陆新版正方教务管理系统

开始

学校教务系统改版,我直接copy博主代码获取学籍那里一直是获取到的是登陆页
测试是用postman直接拿登陆之后的cookie测试,发现可以正常获取数据
发现登陆之前的cookie和登陆之后的cookie发生了变化

 public boolean beginLogin() throws Exception{connection = Jsoup.connect(url+ "/jwglxt/xtgl/login_slogin.html");connection.header("Content-Type","application/x-www-form-urlencoded;charset=utf-8");connection.header("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0");connection.data("csrftoken",csrftoken);connection.data("yhm",stuNum);connection.data("mm",password);connection.data("mm",password);System.out.println(password);response = connection.cookies(cookies).ignoreContentType(true).method(Connection.Method.POST).execute();cookies = response.cookies();//增加这行代码,更新cookieresponse = connection.execute();document = Jsoup.parse(response.body());if(document.getElementById("tips") == null){System.out.println("登陆成功");return true;}else{System.out.println(document.getElementById("tips").text());return false;}}

获取基本/学籍信息 这个查询几乎无用,解析不好解析还有很多学校信息不给显示

   public void getStudentInformaction() throws Exception {connection = Jsoup.connect(url+ "/jwglxt/xsxxxggl/xsgrxxwh_cxXsgrxx.html?gnmkdm=N100801&layout=default&su="+ stuNum);connection.header("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:92.0) Gecko/20100101 Firefox/92.0");response = connection.cookies(cookies).ignoreContentType(true).execute();Document document2 = Jsoup.parse(response.body());Elements elements = document2.getElementsByClass("form-control-static");for (Element e:elements) {System.out.println(e.text());}Element col_xh = document2.getElementById("col_xh");System.out.println(col_xh);}

获取课表

public void getStudentTimetable(int year , int term) throws Exception {connection = Jsoup.connect(url+ "/jwglxt/kbcx/xskbcx_cxXsKb.html?gnmkdm=N2151");connection.header("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0");connection.data("xnm",String.valueOf(year));connection.data("xqm",String.valueOf(term * term * 3));response = connection.cookies(cookies).method(Connection.Method.POST).ignoreContentType(true).execute();JSONObject jsonObject = JSON.parseObject(response.body());if(jsonObject.get("kbList") == null){System.out.println("暂时没有安排课程");return;}JSONArray timeTable = JSON.parseArray(jsonObject.getString("kbList"));System.out.println(String.valueOf(year) + " -- " + String.valueOf(year + 1) + "学年 " + "第" + term + "学期");for (Iterator iterator = timeTable.iterator(); iterator.hasNext();) {JSONObject lesson = (JSONObject) iterator.next();System.out.println("课程:"+lesson.getString("kcmc"));System.out.println("节/周:"+"("+lesson.getString("xqjmc")+" "+lesson.getString("jc")+")"+lesson.getString("zcd"));System.out.println("上课地点: "+lesson.getString("xqmc")+" "+lesson.getString("cdmc"));System.out.println("教师: "+lesson.getString("xm"));System.out.println("教学班名称:"+lesson.getString("jxbmc"));System.out.println("考核方式:"+lesson.getString("khfsmc"));System.out.println("选课备注:"+lesson.getString("kcxz"));System.out.println("课程学时组成:"+lesson.getString("kcxszc"));System.out.println("周学时: "+lesson.getString("xf"));System.out.println("总学时: "+lesson.getString("zxs"));System.out.println("学分: "+lesson.getString("xf"));System.out.println();System.out.println("-----分界线-------");System.out.println();}}
2021 -- 2022学年 第1学期
课程:数据库原理及应用A
节/周:(星期一 1-2节)1-18周
上课地点: 长安校区东区 FF405
教师: 孟彩霞
教学班名称:数据库原理及应用A-0003
考核方式:校考
选课备注:选修
课程学时组成:讲课:44,实验:20
周学时: 4
总学时: 72
学分: 4-----分界线-------课程:计算机组成原理
节/周:(星期一 3-4节)1-18周
上课地点: 长安校区东区 FF405
教师: 范琳
教学班名称:计算机组成原理-0001
考核方式:校考
选课备注:必修
课程学时组成:讲课:54,实验:10
周学时: 4
总学时: 64
学分: 4-----分界线-------

在获取课表的json中还发现了有学生的基本信息(学号,班级,姓名)

  public void getStudentInfo(int year , int term) throws Exception{connection = Jsoup.connect(url+ "/jwglxt/kbcx/xskbcx_cxXsKb.html?gnmkdm=N2151");connection.header("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0");connection.data("xnm",String.valueOf(year));connection.data("xqm",String.valueOf(term * term * 3));response = connection.cookies(cookies).method(Connection.Method.POST).ignoreContentType(true).execute();JSONObject jsonObject = JSON.parseObject(response.body());JSONObject xsxx = jsonObject.getJSONObject("xsxx");System.out.println(xsxx.getString("BJMC"));System.out.println(xsxx.getString("XH"));System.out.println(xsxx.getString("XM"));}

获取成绩现在还是json,一样的

不得不说,中国人还是喜欢用拼音的。。。学校的系统字段都用的拼音。天知道那些大写字母都是啥意思。。。XM,XH,BJMC

参考:模拟登陆新版正方教务管理系统

模拟登陆新版正方教务管理系统【可以获取学生基本/课表信息】相关推荐

  1. 模拟登陆新版正方教务管理系统

    写在前面 已经过了一年半,网站有所改版,目前是可以正常登录的,获取信息的那几个url不是直接返回JSON了,需要自己去解析数据. 引入 与很多高校一样,西安皇家邮电大学一直钟爱于正方教务管理系统. 前 ...

  2. 新版正方教务管理系统API(获取课程表,考试,成绩,通知,自动抢课等)

    一个有关新版正方教务管理系统(如下图展示的主页面即为新版教务系统)的API,可以实现教务系统内基础的查询功能,未来还会添加选课抢课,一键评价等功能. 已实现与待实现 自动登陆.cookies获取 个人 ...

  3. 教务系统自动评教_新版正方教务管理系统自动评教脚本

    本脚本适用于新版正方教务管理系统学生评教页面. 使用注意: 1,本脚本必须在Chrome内核浏览器使用,其余内核(IE,Edge等)无法使用! 2,如果您使用的是360浏览器/QQ浏览器/百度浏览器等 ...

  4. JSoup模拟登录新版正方教务系统(内网-教务系统)获取信息过程详解

    新版正方教务系统登录界面: 目录 一.需求分析 二.模拟登录内网 三.模拟登录教务系统 四.爬取成绩和课表信息 参考文章 一.需求分析   需要访问教务系统,爬取出课表成绩等信息,并在自己所写的APP ...

  5. 用Python登陆新版正方教务系统获取课程表(及RSA加密密码实现)

    前言 最近做一个微信小程序,需要登录教务系统.提前用python尝试一下登录接口,并获取到课表打印出来. 我们学校用到新版正方教务系统,长这个样子. 相比旧版的教务系统,唯一好处是不用输入二维码方便爬 ...

  6. 爬取正方教务管理系统获取学生信息

    新版正方教务系统请点这里:模拟登陆新版正方教务管理系统(获取学籍信息.课表和成绩) 最近想学点爬虫玩玩,拿学校的教务系统练练手.学校与很多高校一样,用的是正方教务管理系统,非常的不好用,经常出现登陆不 ...

  7. go语言爬取新版正方教务系统数据

    go语言爬取新版正方教务系统数据 学完go语言的基础之后已经过了一个多月了,开始想试着利用些时间写写博客,就打算将半个月前练着写的一个go爬虫小项目翻出来写写.由于之前对go爬虫的一些基础知识不熟悉, ...

  8. 模拟登录正方教务管理系统-JAVA实现

    模拟登录正方教务管理系统 这款应用能够将正方教务管理系统上的英语四六级信息查询功能.期末考试安排信息查询功能.期末考试成绩信息查询功能.课程表信息查询功能.毕业设计信息查询功能.个人头像信息查询功能在 ...

  9. 使用 PyRsa 库解决新版正方教务的 RSA 加密问题并模拟登陆的 Python 实现

    前言 先前有一个契机,需要模拟登陆学校所使用的正方教务来获取课程表,其所使用的 RSA 加密方法没有现成的 Python 库可使用,目前其他的 CSDN 博客所采用的方法均无法成功登陆,故只能自己研究 ...

最新文章

  1. 根据gtf格式的基因注释文件得到人所有基因的染色体坐标
  2. 【Java基础】语言基础知识
  3. hbase shell-namespace(命名空间指令)
  4. STM32 基础系列教程 33 - Lwip_tcp_client
  5. 区块链相关数据报表_重磅|京东云区块链数据服务(BDS)正式开源
  6. 如何利用.NETCore向Azure EventHubs准实时批量发送数据?
  7. 五、K8s pod相关操作(1)
  8. Qt开发之路——SogouInput\Components\ Error - RtlWerpReportException failed with status code :-107374182
  9. Win2008系统下装CTBS之前的系统组件安装向导第二篇(补充篇)
  10. wps 甘特图_项目管理/产品研发/建设施工/计划生成项目进度甘特图表教程
  11. STM32压力传感器信号采集-24位AD HX720 HX711 原理介绍
  12. 计算机python考试真题及答案新课标_CCF计算机职业资格认证考题答案详解(Python)...
  13. c语言编译bss和data,认识bss段和data段
  14. 当年南大小百合上拍古典诗词版版主的
  15. win10备份(win10备份的系统怎么还原)
  16. Python使用pip安装报错ModuleNotFoundError: No module named ‘pkg_resources‘的解决方法
  17. Big O, Big Omega, Big Theta的含义
  18. h0206. 区间选点
  19. 项目管理之中高级管理(成本管理)
  20. crosswalk源码 的编译过程

热门文章

  1. H3C交换机查看相关的命令
  2. 第九讲:因子分析(Factor analysis)
  3. 能量时域空间物理_2.1时域数学建模,二阶系统阻尼比与品质因数存在这样奇妙的关系...
  4. Git学习————rm删除文件与文件找回
  5. ARM NEON - RGB转灰度的实现 (DSP Factory学习总结)
  6. 工作了,才知道......
  7. 确定电气间隙和爬电距离
  8. Django项目实战——6—(退出登录、判断用户是否登录、QQ登录、QQ登录工具QQLoginTool、本机绑定域名)
  9. 第五届蓝帽杯初赛:冬奥会_is_coming
  10. leetcode5454