Skip to content
湖南科技大学成绩查询
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
screenshoot
server
static
.gitignore
.project
README.MD
app.py
index-pre.html
index.html
pack.py
run_server.py
run_spider.sh

README.MD

湖南科技大学成绩查询

#####目前我正在寻找暑假实习,欢迎访问 r.hi-hi.cn 查看我的简历

这是一个基于教务网漏洞的成绩查询网站,开发时间约2014年6月,目前该项目已经废弃

作者:JailBreakC wangkechun ####请关注我们的微信号 查水表小分队 二维码

功能列表

##技术提要:

  • 用财务网某漏洞获取到学生身份证号码,然后在教务网利用家长查询渠道获取成绩信息.
  • 用内网映射解决外网服务器无法访问教务网的问题
  • 内网映射基于 ssh反向隧道,花生壳,net123
  • 前端页面基于Bootstrap/jQuery/CoffeeScript
  • 后端基于Python语言的Flask框架,数据库采用MongoDB
  • 爬虫采用Scrapy框架的selector提取信息,用Fabric实现自动同步数据库
  • 验证码识别采用PIL,算法是简单的K最近邻算法.

##版本日志

  • [06-20] 0.1: 测试版上线
  • [06-20] 0.2: 修复一系列BUG,添加加载动画
  • [06-20] 0.3: 修复不及格红色显示BUG
  • [06-21] 0.4: 添加了班级查询的加载进度条
  • [06-21] 0.5: 增加了更新日志区和评论区
  • [06-21] 0.6: 大幅提高查询速度。火箭般的感觉^_^
  • [06-21] 1.0: beta版正式上线,修复所有已知BUG,功能达到预期,稳定性大幅增强
  • [06-21] 1.1: 新增分享功能,快把这个网站分享给你的朋友们吧
  • [06-21] 1.2: 修复了一个在用手机自带浏览器时输入框可能会变形的BUG
  • [06-24] 1.3: 添加校历查询(需要用IE打开)
  • [06-25] 1.4: 修复了学号1265开头的同学查不到成绩的BUG
  • [06-29] 2.0: 增加了隐私保护
  • [07-01] 2.1: 修改了Tab顺序,增加了查询学号缓存。提高了易用性
  • PS T_T 2.0版本之后我们的服务器一直架设在一台连接无线网的笔记本上面(小王还经常不插电源)
  • 现在终于迁移到了一台插着网线的I3台式机上了。。T_T太艰难
  • [07-02] 2.2: 修复了连续点按多次GO会出现信息重复的问题

##项目介绍 文章来自 http://vgee.cn/#/post/2014-09-18-about-myscore.md #####title:科大成绩查询网开发过程 #####disc:参加微知著奖学金评选要的材料,挑了这个项目来写一写 #####type:项目经历 在大二下学期期末考试的前两天,我正在努力的做期末考试的复习,休息的时候点开教务网,查看考试安排,忽然想起教务网(内网)在家里没法正常访问,而且只兼容IE8-浏览器,。于是萌生了一个想法,自己做一个成绩查询的网站,这样再也不用进恶心的教务网。简直造福广大师生啊。

然后我就和王克纯(实验室同学)商量了一下,发现他也正有此意,于是我们两一拍即合,准备共同开发这个网站。我们采用的基本原理是ssh隧道内网穿透. 把教务网映射出去,然后我们还有个digitalocean vps,可以用作服务器。就这样,王负责后端代码编写和隧道、爬虫,我负责前端页面逻辑和数据处理。

  • 项目开始前准备:
  • 使用-Python做后端开发语言,mongoDB数据库。
  • 使用bootstrap做前端框架,使用media query响应式布局
  • 使用git作为版本控制工具,github作为数据托管。
  • 约定好了json数据接口,手写几组样例数据做调试用。
  • 然后两人就快速的开始了开发
  • 首页设计的很简洁,采用AJAX动态加载的方式首页只有一个很漂亮的标题和输入框,
  • 还有一个用CSS3的canvas制作的一个加载动画,很漂亮。
  • 输入学号之后发送请求再加载数据。
  • 很快,第一个版本就做出来了。
  • 这时候发现数据太多,需要分类一下,
  • 于是就做把数据按照学期分组排序、做了几个按钮。
  • 试了一下,感觉非常好用。
  • 然后我又想到,有时候我们会想要知道全班的成绩分布,
  • 为何不写一个全班查询的功能呢。
  • 于是马上动手,因为从用户的学号很容易知道他所属的班级
  • 我就将整个班级所有的请求发送出去,然后慢慢接收。
  • 这样虽然数据量有点大,时间有点长,
  • 但是好在可以接受一个显示一个,页面不会卡死。
  • 时间一长,进度条还是很有必要的,这个时候遇到一个比较棘手的问题
  • javascript采用的是异步加载的方式,靠代码顺序是没用的。
  • 要用回调函数的方式来接收事件的处理状态,由于当时还不是很熟悉
  • 折腾了比较长的时间,最后还是解决了。
  • 后来就是各种小细节的优化
  • 比如给挂掉的科目加上红色背景,增加请求超时提醒
  • 还有在小屏幕上的布局优化,等等。
  • 这样就基本上可以使用了。然后上线测试,回去休息
  • (这个时候已经到了第二天的早上)
  • 但是就这样简单上线了,网站一点灵气都没有。
  • 于是我就找来了微博、空间分享的的API添加上分享功能。
  • 然后还添加了百度统计的代码,来统计用户数。
  • 还做了两个弹出的模态框一个用来给我们留言(使用多说)
  • 一个用来显示我们的版本更新日志。
  • 在浏览器兼容方面还对IE8做了特殊处理,保证IE8也可以顺畅访问。
  • 事实证明这样效果非常好,在网站上线的初期我们就迎来了大量的关注
  • 并且有很多同学给我们留言,提建议和互动。
  • 就在我们非常开心的看到日访问量到达1万多的时候
  • 忽然接到了教务处老师打来的电话,
  • 说是由于我们的网站限制太宽松,导致可以随意查看同学成绩,
  • 属于侵犯隐私要求我们关闭。
  • 没有办法,我们只好把网站暂时关闭,然后马上想解决办法。
  • 不过这件事还促使学校修复了一个存在了很久的BUG,
  • 就是可以直接通过修改url地址的方式来获取学生的成绩(我们的数据来源)
  • 这件事情也在网上导致了同学们的激烈讨论,大部分同学还是认为
  • 教务网的做法过激,自己做不好的系统还不让别人做。
  • 不过我们没有被困难锁住,马上想好解决方案。
  • 直接通过OCR的方式破解了教务网的验证码,直接利用家长查询功能正常登陆
  • 又拿到了学生的成绩信息,
  • 而且在首页加上了身份证后四位验证,并且阉割掉了全班查询功能。
  • 这样我们的又网站得以重新上线,并且在后来的几天达到了1.7万日访问的峰值。
  • 一时间几乎科大人都知道有这样一个方便又好用的查成绩方式了。

##使用截图:

1
2 3 4 5

You can’t perform that action at this time.