feat: 活動列表查詢

This commit is contained in:
Ting-Jun Wang 2021-07-02 23:09:45 +08:00
parent bca08dcbf2
commit c84ccec8e8
Signed by: snsd0805
GPG Key ID: 8DB0D22BC1217D33
2 changed files with 36 additions and 1 deletions

View File

@ -111,5 +111,10 @@ eventReg = EventRegistry(CONFIG['NCNU']['username'], CONFIG['NCNU']['password'])
if eventReg.status: if eventReg.status:
print("登入成功") print("登入成功")
space() space()
# ===== Test 取得所有活動第一頁的列表
for event in eventReg.getEventsList():
print(event)
else: else:
print("登入失敗") print("登入失敗")

View File

@ -35,4 +35,34 @@ class EventRegistry():
if len(response.history)!=0: if len(response.history)!=0:
return True return True
else: else:
return False return False
def getEventsList(self):
'''
取得活動列表中的第一頁
包含所有狀態的活動
'''
url = "https://ccweb.ncnu.edu.tw/SLLL/z6D3B52D553CA5831540D8CC7659967E58A62list.asp"
response = self.session.get(url)
with open('test.html') as fp:
response = fp.read()
root = BeautifulSoup(response, 'html.parser')
events = root.find('table').findAll('tr')
return [{
'id': getUrlParam(data[0].find('a').get('href').replace('&', '&'), 'RowID'),
# 活動詳細:
# https://ccweb.ncnu.edu.tw/SLLL/z6D3B52D553CA5831540D8CC7659967E58A62view.asp?showdetail=&RowID={}
'semester': data[1].text.replace('\n', ''),
'status': data[2].text.replace('\n', ''), # 活動報名狀態
'name': data[3].text.replace('\n', ''),
'time': data[4].text.replace('\n', ''), # 活動開始時間
'method': data[5].text.replace('\n', ''), # 報名方式
'hour': data[6].text.replace('\n', ''), # 時數
'speaker': data[7].text.replace('\n', ''), # 講師
'teacherEvent': data[8].text.replace('\n', ''), # 申請為教師知能活動
} for data in (event.findAll('td') for event in events[1:])]