feat: 取得各學期成績總覽

This commit is contained in:
Ting-Jun Wang 2021-06-30 22:24:49 +08:00
parent 3da7612650
commit b26240d75b
Signed by: snsd0805
GPG Key ID: 8DB0D22BC1217D33
2 changed files with 34 additions and 0 deletions

View File

@ -66,3 +66,32 @@ class NCNU():
else:
return False
def getScoreSummary(self):
'''
取得各學期的學分數平均排名
return data 包含 semesters(list) & sum(dict) 兩部份
各個學期的細項各項課程分數需要在另外的 function 做請求
'''
url = "https://ccweb.ncnu.edu.tw/student/aspmaker_student_selected_semester_stat_viewlist.php"
response = self.session.get(url)
if response.status_code == 200:
histories = find(response, 'tbody').findAll('tr')
# 各學年度的資料(含總和)
semesterDatas = [{
'semester': data[0].text.replace('\n',''), # 學期
'select_num': data[1].text.replace('\n',''), # 選課數
'pass_Num': data[2].text.replace('\n',''), # 及格課程數
'pass_credit': data[3].text.replace('\n',''), # 及格學分數
'average': data[4].text.replace('\n',''), # 平均
'rank': data[5].text.replace('\n','') # 班排名
} for data in (his.findAll('td')[2:] for his in histories)]
return {
'semesters': semesterDatas[:-1],
'sum': semesterDatas[-1]
}
else:
return None

View File

@ -34,5 +34,10 @@ if ncnu.status:
print("1092 課表已經儲存到 ./1092課表.pdf")
else:
print("無法存取 1092 課表")
scores = ncnu.getScoreSummary()
for c in scores['semesters']:
print(c)
print(scores['sum'])
else:
print("NCNU 教務系統登入失敗")