新的一轮教学评价又开始了,每门课要点十几次,课程多的话可能得点一两百次,想起去年有大佬做过自动评价的脚本,但不能用了,因为教务系统的代码有更改,而且不能全满分了,所以照着大佬的代码摸索了一下,改出了能用的脚本。不懂代码的话可以看第一部分直接上手用,懂一点代码而且有兴趣的话可以看一下第二部分,了解一下如何做这样的脚本。

一、授人以鱼

以下以360浏览器为例,其它浏览器大同小异。

1.首先打开教务系统,进入到学生评价页面,如下图。如果课多的话,改一下每页显示的课程数,尽量一个页面显示完所有课。

2.按F12进入开发者模式(笔记本可能需要按fn+F12),或者右键-审查元素也可以进入开发者模式

3.切换到第二项console(有的浏览器译为终端),如下图的1

4.复制下面的代码,粘贴到上一步的console下面的输入区域(即上图的2),然后回车即可一键评价

var num = document.getElementById("tempGrid").rows.length-1
console.log('共'+num+'门课')
var i=1;
var timer = setInterval(() => {if(i == num+1) {console.log('评价结束')clearInterval(timer)}else{console.log('开始评第'+i+'门课')var body = document.getElementById(i++)if(body!=null)  body.click();setTimeout(() => {var radios = document.getElementsByClassName('radio-pjf');var j=0;var r=Math.floor(Math.random()*5)+3;[...radios].forEach((item) => {if(r==j){if(item.getAttribute("data-dyf")=="4") {item.checked = truej++}}else{if(item.getAttribute("data-dyf")=="5") {item.checked = truej++}}})document.getElementById('btn_xspj_bc').click()document.getElementById('btn_xspj_tj').click()console.log('第'+(i-1)+'门课已提交')  },3000)}
},6000)

二、授人以渔

这部分我分享一下我是如何做出这个脚本的,以后如果我的代码失效的话,大家可以知道怎么改。

1.首先,我们知道,对获取到的html元素调用click()方法可以模拟一次点击,所以我们首先需要获取到左侧课程的HTML元素。

2.通过分析这个页面的HTML源码,我发现在源码里,每门课都有一个id,而且id是从1开始的,所以我们可以使用document.getElementById(id)这个方法获取到每门课的HTML元素

3.在点击了左侧的课程之后,右侧出现了评分表,还是通过分析代码,评分表的classname是radio-pjf,通过document.getElementsByClassName('radio-pjf');可以获得评分表的HTML对象。。我们需要选10个5分和1个4分,评分项中教学过程权重较低,我们可以把4分选在这里,通过一个随机数来实现(这部分是参考别人的代码)

            var radios = document.getElementsByClassName('radio-pjf');var j=0;var r=Math.floor(Math.random()*5)+3;[...radios].forEach((item) => {if(r==j){if(item.getAttribute("data-dyf")=="4") {item.checked = truej++}}else{if(item.getAttribute("data-dyf")=="5") {item.checked = truej++}}})

5.把分数选完之后,我们需要保存提交,分析一下源码,找到【保存】和【提交】这两个按钮的代码,发现它们的id分别是btn_xspj_bc、btn_xspj_tj,使用document.getElementById()获取元素并点击即可

document.getElementById('btn_xspj_bc').click()
document.getElementById('btn_xspj_tj').click()

结语

主要是需要分析一下源码,知道如何获取HTML元素,如果以后教务系统的代码和规则有更改的话,稍微改一下我的代码应该就能用了。不过奇怪的是,不可以通过获取左侧课程的时候不能通过for循环var body = document.getElementById(i++)来获取相应课程,学艺不精不知道是为什么,这里是参考大佬的代码。

参考

https://mubu.com/doc/faqLPTsU50

HZAU新版正方教务系统一键教学评价相关推荐

  1. 用JS代码自动填写正方教务系统的教学评价

    1.新建一个书签,在网址出输入如下代码:javascript:void(function(){var s=document.createElement('script');s.setAttribute ...

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

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

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

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

  4. Python实现新版正方教务系统爬虫(二)

    前言 哎对不起 我可能是silly boy 我想在学校里把去年的坑填了 但是发现新版的教务系统代码没传到git上 我现在就成了个对着空ide发呆的憨憨(代码在家里啦 所以填坑就再过会吧 那就稍微闲聊一 ...

  5. 用java计算学生绩点并排序_JS代码计算GPA平均学分绩点(适合新版正方教务系统)...

    JS代码计算GPA平均学分绩点(适合新版正方教务系统)javascript 新版教务在某些功能上进步很大,可是在GPA统计上,只有全部科目的GPA,没有必修科目的GPA,因此只能本身去写了.java ...

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

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

  7. 正方教务系统一键评教代码

    选取了好几种代码,第一种是我自己使用成功的一种.其他几个没有成功,等以后学会了javascript之后再来分析一下为什么. 第一种:正方教务管理系统 - 一键评价(JS) (function(){va ...

  8. python实现高校教务管理系统_Python实现新版正方教务系统爬虫

    目录~ 引入 需要什么软件? 模拟登陆 代码实现(登陆) 模拟获取成绩 代码实现(获取成绩) 解析成绩 测试(完成图) 作者的话 引入 就在我刚刚写完旧版正方系统爬虫的时候(旧版正方系统爬虫代码) 学 ...

  9. 新版正方教务系统导出课程表-油猴脚本

    https://www.cnblogs.com/31415926535x/p/12244461.html 简介 这个油猴脚本主要是针对新版的正方教务系统,实现将课程表转化为一个 courses.ics ...

最新文章

  1. f5申请并激活License
  2. 《扩展 jQuery》——6.3 总结
  3. 今年,就没有一款能打的5G旗舰机吗?
  4. Fedora中允许mysql远程访问的几种方式
  5. python中的函数、生成器的工作原理
  6. 一日一技:ASP.NET Core 判断请求是否为Ajax请求
  7. ASIHTTPRequest 常用方法讲解
  8. 该虚拟机似乎正在使用中 请获取所有权
  9. 2、Task 使用 ContinueWith 而不要使用 Wait
  10. MYSQL 10038 服务启动不起来
  11. c++ 基数排序算法_基数排序算法– C / C ++实现的基础
  12. 为什么 BetterScroll 初始化不能滚动?
  13. 总结篇——mysql中使用sql语句操作表字段
  14. 转css中文英文换行、禁止换行、显示省略号
  15. 简单谈一谈git小乌龟操作
  16. 印象笔记chrome插件 安装 程序包无效
  17. 系统迁移的重点步骤及注意事项
  18. 用php调用接口api
  19. 外部css样式不生效的原因
  20. python第二周day5

热门文章

  1. 华为无线设备配置同一业务VLAN的AP间快速漫游
  2. 管道/过滤器架构风格的优点和不足
  3. 旋转编码器详解(主要讨论增量式编码器与绝对式编码器)
  4. Python城堡漫游记之第0章误入游戏空间
  5. php.ini中文翻译-转载
  6. 1718: 身体质量指数
  7. 计算机文化基础—计算机硬件系统
  8. 钉邮登陆 服务器响应超时,链接id服务器超时怎么回事啊
  9. Python 3网络爬虫开发实战
  10. 校准报告确认有哪些方法?为什么需要进行确认?