北邮教务系统评教脚本

2015 年 01 月 09 日更新

由于教务系统的地址变更以及验证码的加入,Python 版的评教脚本已经失效,请使用 javascript 版

每个学期末都烦心事儿不断,评教这件小事儿还非得过来掺合掺合。扒着眼睛找那个巨小无比的选择按钮真实让人烦躁啊。作为死工科生,总得做点什么。于是就写了个评教脚本。

总共有两个版本(考虑到坑爹的 windows,实际上是三个)

  • JavaScript 版
  • Python 版
  • Py4win 版(src+exe)

这三个版本有点儿不一样。Javascript 版就是一串 JS 代码,直接在浏览器中运行即可,不需要额外下载安装任何东西,但是缺点是每次只能评一位老师,也就是说你还是得运行十几次代码才能完成教学评估。Python 版是一个.py 文件,在大多数 Linux/OSX 上都能直接运行,而且能一次性完成评教,是真正的“一键评教”。单独把 Windows 割裂出来是因为编码问题,cmd 的默认编码是 gb2312,于是就出现了乱码,于是把 Python 版的代码做一些编码上的处理就变成了 Py4win 版,考虑到大部分 windows 下没安装 Python,于是用 py2exe 打包了一个 exe,算作是 Py4win 版的一部分吧。

下面开始挨个介绍使用方法。

JavaScript 版(一般般推荐)

复制下面这串代码(有结构的未压缩版请看文章最后)

javascript: "URP 综合教务系统 - 教学评估 - 教学评估"==window.document.title?x=window.frames[1].frames[2].document.getElementsByTagName("input"):"问卷评估页面"==window.document.title?x=window.document.getElementsByTagName("input"):alert("请确认一个你现在是不是处于正确的页面上,本程序只能在教学评估页面运行!"),data=new Array;for(var i=0;i<x.length;i++)"hidden"==x[i].type&&data.push(x[i].value);function post(t,e,n){n=n||"post";var a=document.createElement("form");for(var i in a.setAttribute("method",n),a.setAttribute("action",t),e)if(e.hasOwnProperty(i)){var d=document.createElement("input");d.setAttribute("type","hidden"),d.setAttribute("name",i),d.setAttribute("value",e[i]),a.appendChild(d)}document.body.appendChild(a),a.submit()}post("http://jwxt.bupt.edu.cn/jxpgXsAction.do?oper=wjpg",{wjbm:data[0],bpr:data[1],pgnr:data[2],"0000000021":"10_0.95","0000000022":"10_0.95","0000000023":"5_0.95","0000000024":"20_0.95","0000000025":"10_0.95","0000000026":"5_0.95","0000000027":"5_0.95","0000000028":"20_0.95","0000000029":"10_0.95","0000000030":"5_0.95",zgpj:"老师讲课很认真的啦~"},"post");

登录教务系统,打开教学评估页面,选择一门课程进行评估,于是就到了下面这个页面(由于测试的关系我已经评完了)

评教页面

然后,在浏览器的地址栏中粘贴刚刚复制的代码,注意,一定要带前面的javascript:,有些浏览器由于安全方面的考虑会自动过滤掉这串字符,这时就需要我们手动加上。粘贴好之后按回车,脚本会自动完成选择和提交的动作。默认都选“优”也就是第二档。

还有两种使用方式可以参考:

  • 把这段代码加到书签里,到评估页面后直接点书签就行了
  • 在浏览器开发者工具的 Console 中执行

Python 版(最推荐)

如果你用的是 Linux/OSX,那么在安装完BeautifulSoup后就可以直接调用了。

BeautifulSoup 安装命令:sudo pip install beautifulsoup4sudo easy_install beautifulsoup4

运行脚本:python pingjiao.py

运行效果大概就是下面这样

脚本运行效果

Py4win 版(src 推荐,exe 非常不推荐)

如果你在 windows 上装了 python,那么使用方法和 Python 版完全相同,装好 BeautifulSoup 就能用了。

如果没装,但是你还非常想用的话,那只能用 exe 版本了。exe 版本使用非常简单,双击“评教.exe”运行就行了。

exe 版本使用 Py4win 版的 src+py2exe 打包,使用上没有任何问题,但是我不推荐用。直接给可执行文件是个很敏感的事儿,你完全可以说我植入了什么奇怪的东西,虽然我什么都没干。所以如果你使用 exe 版的话,你必须自己承担这带来的一切后果。有点危言耸听了,但是永远要相信「6L+Z5Liq5LiW55WM5LiK5bCP5Lq66L+Y5piv5oy65aSa55qE」。

所有的文件来这儿下载

  1. 源码在 GitHub
  2. Py4win 版的 exe 文件在 百度云

Special Thanks

感谢 @qiukun 大神的指导。良师益友没得说~


2228 Words

2015-01-09 09:38 +0800

comments powered by Disqus