Repository navigation
Expand file tree
/
Copy pathclassTable.py
More file actions
70 lines (65 loc) · 2.7 KB
/
Copy pathclassTable.py
File metadata and controls
70 lines (65 loc) · 2.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
import json
from oa_auth import OAAuth
from parsel import Selector
oa = OAAuth(service="https://matrix.dean.swust.edu.cn/acadmicManager/index.cfm?event=studentPortal:DEFAULT_EVENT")
if oa.login("",""):
session = oa.get_session()
res = session.get("https://matrix.dean.swust.edu.cn/acadmicManager/index.cfm?event=chooseCourse:courseTable")
document = Selector(res.text)
class_table = document.css("#choosenCourseTable tbody")
trs = class_table.css("tr")
time = 0
class_table = []
for td in trs:
time += 1
trs = td.css("td")
if len(trs) == 8:
tr_count = 0
for tr in trs:
tr_count += 1
if tr_count == 0:
continue
lecture = tr.css(".lecture")
if lecture:
class_name = lecture.css(".course::text").get().strip()
teacher = lecture.css(".teacher::text").get().strip()
week = lecture.css(".week::text").get().strip()
start_time = week.split("-")[0]
end_time = week.split("-")[1].split("(")[0]
place = lecture.css(".place::text").get().strip()
class_table.append({
"class_name": class_name,
"teacher": teacher,
"location": place,
"start_time": start_time,
"end_time": end_time,
"week_day": tr_count-1,
"time": time
})
else:
tr_count = 0
for tr in trs:
tr_count += 1
if tr_count == 0 or tr_count == 1:
tr_count += 1
continue
lecture = tr.css(".lecture")
if lecture:
class_name = lecture.css(".course::text").get()
teacher = lecture.css(".teacher::text").get().strip()
week = lecture.css(".week::text").get().strip()
start_time = week.split("-")[0]
end_time = week.split("-")[1].split("(")[0]
place = lecture.css(".place::text").get().strip()
class_table.append({
"class_name": class_name,
"teacher": teacher,
"location": place,
"start_time": start_time,
"end_time": end_time,
"week_day": tr_count-2,
"time": time
})
with open('table.json', 'w') as f:
json.dump(class_table, f)
print(class_table)