厦门大学教务系统出分情况监测脚本

2017/01/14

背景介绍

敝校的教务系统喜欢挤牙膏式地一门一门发布成绩,发布后也没有邮件通知,学渣如我得整天提心吊胆有事没事打开教务系统网页刷新一下,看看有没有哪门科目需要 see u next year。上次写过一个计算 GPA 的脚本,刚考完闲来无事改进一下,写了个监控脚本,一旦有新的科目发布成绩就发送邮件通知,图个方便,没啥难度。

原理

简单粗暴,把每次计算出的 GPA 结果存储下来,与上次计算结果比对,若是出现变动,即认为发布了新的成绩,按照设置发送邮件提醒。(GPA 计算结果精确到小数点后4位,理论上出了新的成绩而 GPA 不变的概率极小,除非有学神一直保持4.0。。)

使用方式

1. 安装第三方库

本程序基于 Python 2.7.13 编写,完整的依赖库列表可见代码头部,以下几个第三方库可能需要额外安装,直接 pip install 即可。

  • requests
  • BeautifulSoup
  • PrettyTable

2. 配置个人信息

按照代码头部的说明设置你的个人信息,包括以下: Info

注意的是邮件部分前五个参数为发送通知的邮箱信息,最后一个为用于接收提醒的邮箱。发送邮箱需要开启 SMTP 服务,建议不要使用163邮箱,捣腾了半天还是会触发反垃圾规则导致无法发件,个人使用腾讯企业邮箱测试通过,或者自行搭建 sendmail 服务器也可。

3. 设置定期运行

在你的 VPS 系统里的 crontab 里加个定时任务,或者 PC 上 Windows 里加个计划任务,按照你设定的时间段和时间间隔执行即可,方法多样,找个合适的就好。第一次执行会发送一封提醒邮件,可以借此检验是否配置成功。

下面是提醒邮件的样例: mail

开源项目

本程序使用 GPL v3 协议开放全部源代码,你可以在我的 Github 仓库里获取,欢迎 star。最后祝各位出分顺利。

Post Directory