#!/usr/bin/python# -*- coding: utf-8 -*-import timeimport requestsimport reimport osimport jsonimport datetime# 强智教务管理系统########################################account = ""password = ""url = "http://jwgl.sdust.edu.cn/app.do"########################################class SW(object):"""docstring for SW"""def __init__(self, account, password,url):super(SW, self).__init__()self.url = urlself.account = accountself.password = passwordself.session = self.login()HEADERS = {"User-Agent":"Mozilla/5.0 (Linux; U; Mobile; Android 6.0.1;C107-9 Build/FRF91 )","Referer": "http://www.baidu.com","Accept-encoding": "gzip, deflate, br","Accept-language": "zh-CN,zh-TW;q=0.8,zh;q=0.6,en;q=0.4,ja;q=0.2","Cache-control": "max-age=0"}def login(self):params = {"method" : "authUser","xh" : self.account,"pwd" : self.password}session = requests.Session()req = session.get(self.url, params = params, timeout = 5, headers = self.HEADERS)s = json.loads(req.text)print(s)if s["flag"] != "1" : exit(0)self.HEADERS["token"] = s["token"]return sessiondef get_handle(self,params):req = self.session.get(self.url, params = params ,timeout = 5 ,headers = self.HEADERS)return reqdef get_student_info(self):params = {"method" : "getUserInfo","xh" : self.account}req = self.get_handle(params)print(req.text)def get_current_time(self):params = {"method" : "getCurrentTime","currDate" : datetime.datetime.now().strftime("%Y-%m-%d")}req = self.get_handle(params)print(req.text)return req.textdef get_class_info(self,zc = -1):s = json.loads(self.get_current_time())params={"method" : "getKbcxAzc","xnxqid" : s["xnxqh"],"zc" : s["zc"] if zc == -1 else zc,"xh" : self.account}req = self.get_handle(params)print(req.text)def get_classroom_info(self,idleTime = "allday"):params={"method" : "getKxJscx","time" : datetime.datetime.now().strftime("%Y-%m-%d"),"idleTime" : idleTime}req = self.get_handle(params)print(req.text)def get_grade_info(self,sy = ""):params={"method" : "getCjcx","xh" : self.account,"xnxqid" : sy}req = self.get_handle(params)print("全部成绩" if sy == "" else sy)s = json.loads(req.text)if s[0] != None :s = json.loads(req.text)for x in s:print("%s %d %s" % (str(x["zcj"]),x["xf"],x["kcmc"]))print("绩点:" + str(self.get_gp(s)))else :print("空")def get_exam_info(self):params={"method" : "getKscx","xh" : self.account,}req = self.get_handle(params)print(req.text)def get_gp(self,data):GP = 0.0credit = 0.0for x in data:credit += x["xf"]if x["zcj"] == "优":GP += (4.5 * x["xf"])elif x["zcj"] == "良":GP += (3.5 * x["xf"])elif x["zcj"] == "中":GP += (2.5 * x["xf"])elif x["zcj"] == "及格":GP += (1.5 * x["xf"])elif x["zcj"] == "不及格":GP += 0else :if float(x["zcj"]) >= 60:GP += (((float(x["zcj"])-60)/10+1) * x["xf"])return GP/creditif __name__ == "__main__":Q = SW(account,password,url)# Q.get_student_info() #获取学生信息# Q.get_current_time() #获取学年信息# Q.get_class_info() #当前周次课表# Q.get_class_info(3) #指定周次课表# Q.get_classroom_info("0102") #空教室查询 "allday":全天 "am":上午 "pm":下午 "night":晚上 "0102":1.2节空教室 "0304":3.4节空教室# Q.get_grade_info("2018-2019-1") #成绩查询 #无参数查询全部成绩# Q.get_exam_info() #获取考试信息
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。