首页 > 怎么得到大学官网的成绩查询接口?

怎么得到大学官网的成绩查询接口?

我们学校的官网经常是要等到成绩全部录入完毕之后才会开发查询成绩功能,大家都知道等成绩的过程是多么的难熬,尽管最后有可能等出来的是噩耗。来这里提这个问题是因为之前在学校还没开放成绩查询之前,微信上出现了一个神奇的公众号,输入学校名字和学号就能查询到你的成绩(显示已经被录入的成绩),我觉得很厉害啊,所以特来此求助各位大大,不知有哪位天才曾经做过这样的事情,希望能得到您的真传


作为一个写过自己学校第三方教务系统的人,我来回答一下好了。

  1. 首先是关于你说的接口。一般来说学校是不会提供接口的,因为这不像是微信公众号这一类的东西,教务系统是比较严肃的一个网站,它是不可能也不敢提供接口的,万一学生个人数据泄露了怪谁?要拿到数据,就要像 @有明 说的那样,采用模拟登陆抓取页面再进行分析的方式来获得成绩的。我的做法就是先把学号密码 POST 到官方的教务系统,得到 cookie 之后带着这个 cookie 去抓取成绩页面的数据,然后再用正则表达式去把成绩匹配出来(成绩一般用表格显示,所以还是挺有规律的)。

  2. 再次是关于你说的能够提前查到成绩。我们学校的教务系统平时是不会关闭成绩查询的,但是在教学评价那段时间(每个学期快要结束的时候)如果你没有完成评价,那么是没法查到成绩的(弹个警告框出来,然后进不去成绩查询页面)。后来我发现我那个第三方教务系统确是能够在那段时间里查到成绩的,然后我就去看源码,发现学校的手段很简单,就是用 JS 来弹警告框,然后跳转到别的页面——说白了就是在成绩显示出来之前就把页面跳走了,因为我的爬虫是不会执行 JS 代码的,所以我的爬虫依然可以正常工作。你说的那个公众号能够在学校没有开放的情况下查到成绩,应该也是类似的情况。


题外话:如果你想做一个受欢迎的查成绩系统,那么你一定要做好细节上的东西,要有更好的用户体验。比如我校官方的教务系统用手机来查成绩是很痛苦的——在手机上浏览电脑版网页的那种感觉,你懂的,所以我写的那个我就用了自适应页面;还有就是官方教务系统是把所有成绩同时列出来的,我就按学期给它们分了类,一个学期一个 tab;另外还去掉了一些不常用的项,只保留了“课程名字”、“教师”、“平时成绩”、“考试成绩”和“总评成绩”(学生无非也就关注这几项嘛),加了个 GPA 项(官方没有这一项),对挂科比较多的同学有个温馨提醒啊,以及导出成绩到 excel 等等,所以我的第三方教务系统赢得了同学们甚至是校方的好评。


既然没有提供接口,你当然是得不到的。目前大多数用来帮助查询成绩的工具,都是采用模拟登陆抓取页面再进行分析的方式来获得成绩的。不是通过接口的方式。

【热门文章】
【热门文章】