Browse Source

First commit

master
斐斐 2 years ago
commit
a96922952b
  1. 11
      README.md
  2. 32
      ustc_monitor.py
  3. 41
      zuel_monitor.py

11
README.md

@ -0,0 +1,11 @@
# 研究生招生分数查询系统监控器
仅在Windows系统下有效。
本监控器包含两个学校:
* 中国科学技术大学
* 中南财经政法大学
中国科学技术大学监控工作流程为:一旦发现页面发生更改,则通过Windows Toast发送通知,并打开浏览器叫你看一看
中南财经政法大学监控流程为:不断尝试登录,一旦登录成功并且成绩页面的状态码不是5xx或提示系统内部错误,则发送通知,并打印网页源代码。
可以根据需要修改代码。
注意!中南财经政法大学的需要修改第18行,加入你的证件号码的加密文本。想知道这个文本的,请通过控制台抓包获取。

32
ustc_monitor.py

@ -0,0 +1,32 @@
#encoding:utf-8
from win10toast import ToastNotifier
import requests as r
import os
import time
toaster = ToastNotifier()
oritxt = r.get('http://yzb2.ustc.edu.cn/cjcx').text
if oritxt.find(u'未开通') == -1:
print(u'[NOTICE] 可能已经可以查分了,帮你打开浏览器,快去看看')
os.system('start http://yzb2.ustc.edu.cn/cjcx')
toaster.show_toast(u"USTC查分网监控器",
u"查分网站内容发生变更时我会通知您,并自动打开浏览器", duration=10)
print(u'[NOTICE] 监控开始')
while True:
time.sleep(15)
os.system('cls')
print(u'http://yzb2.ustc.edu.cn/cjcx:获取中...')
try:
current = r.get('http://yzb2.ustc.edu.cn/cjcx').text
if current == oritxt:
print(time.strftime('[NOTICE] %X\tNO...',time.localtime(time.time())))
else:
os.system('start http://yzb2.ustc.edu.cn/cjcx')
toaster.show_toast(u"监控程序",
u"好像可以查询成绩了,帮你打开浏览器,快去看看", duration=60)
exit()
except KeyboardInterrupt:
exit()
except Exception, e:
print("[ERROR] ", e)

41
zuel_monitor.py

@ -0,0 +1,41 @@
#encoding:utf-8
from win10toast import ToastNotifier
import requests as r
import os
import time
toaster = ToastNotifier()
toaster.show_toast(u"zuel查分网监控器",
u"可以查分的时候我会提醒你~", duration=10)
print(u'[NOTICE] 监控开始')
while True:
time.sleep(20)
os.system('cls')
try:
print(u'[NOTICE] 登陆中...')
login_session = r.post('http://stu.znufe.yanzhao.edu.cn/ssxscx.do', {'zjhm':'!此处填写你的证件号码加密后的文本。你可以通过控制台抓包获取!', 'ksbh':''})
if login_session.text.find(u'登录信息有误,请重新填写') != -1:
#print(login_session.text)
print(u'[NOTICE] 登陆失败,信息未录入...')
continue
ybb_cookies = login_session.cookies
print(u'[NOTICE] 登陆成功')
login_get_score = r.get('http://stu.znufe.yanzhao.edu.cn/showPreliminaryScoreInfo.do', cookies=ybb_cookies)
pos = login_get_score.text.find(u'500 - 系统内部错误')
if pos != -1 or login_get_score.status_code / 100 == 5:
print(login_get_score.text)
print(u'[NOTICE] 成绩未录入,20秒后重新登陆(HTTP %d)' % login_get_score.status_code)
else:
print(u'[NOTICE] 成绩好像有了!帮你打开浏览器,快去看看!!!')
print(u'[NOTICE] 成绩信息:')
print(login_get_score.text)
os.system('start http://stu.znufe.yanzhao.edu.cn/ssxscx.do')
toaster.show_toast(u"zuel查分网监控器",
u"成绩好像有了!快去看看!!", duration=10)
os.system('pause')
except KeyboardInterrupt:
exit()
except Exception, e:
print("[ERROR] ", e)