From c84ccec8e8cc6819b7063170a5bce5ac797ae3e8 Mon Sep 17 00:00:00 2001 From: Ting-Jun Wang Date: Fri, 2 Jul 2021 23:09:45 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B4=BB=E5=8B=95=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E6=9F=A5=E8=A9=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- API_Usage.py | 5 +++++ api/eventRigestry.py | 32 +++++++++++++++++++++++++++++++- 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/API_Usage.py b/API_Usage.py index 73d3005..a22c1c3 100644 --- a/API_Usage.py +++ b/API_Usage.py @@ -111,5 +111,10 @@ eventReg = EventRegistry(CONFIG['NCNU']['username'], CONFIG['NCNU']['password']) if eventReg.status: print("登入成功") space() + + # ===== Test 取得所有活動第一頁的列表 + for event in eventReg.getEventsList(): + print(event) + else: print("登入失敗") diff --git a/api/eventRigestry.py b/api/eventRigestry.py index 65c418d..0c5d048 100644 --- a/api/eventRigestry.py +++ b/api/eventRigestry.py @@ -35,4 +35,34 @@ class EventRegistry(): if len(response.history)!=0: return True else: - return False \ No newline at end of file + 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:])] +