diff options
Diffstat (limited to 'crawl/get.py')
| -rw-r--r-- | crawl/get.py | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/crawl/get.py b/crawl/get.py new file mode 100644 index 0000000..2f72ef1 --- /dev/null +++ b/crawl/get.py @@ -0,0 +1,75 @@ +from selenium import webdriver +from selenium.webdriver.common.by import By +import requests +import time +import json + +driver = webdriver.Chrome() +driver.get("https://melpomene.webuntis.com/WebUntis/?school=HS-Augsburg#/basic/timetablePublic") + +time.sleep(5) + +cookies = driver.get_cookies() + +s = requests.Session() +for cookie in cookies: + s.cookies.set(cookie['name'], cookie['value']) + +myheaders = { + "Accept": "application/json, text/plain, */*", + "anonymous-school": "HS-Augsburg"} + +myrealteachers=set(); +myrooms={}; +mycourses=[]; + +melpomeid = 14880; +shortname="FredK"; +longname="FredL"; + +result = s.get("https://melpomene.webuntis.com/WebUntis/api/rest/view/v1/timetable/entries?start=2025-04-07&end=2025-04-12&format=3&resourceType=SUBJECT&resources=" + str(melpomeid) + "&periodTypes=&timetableType=STANDARD", + headers=myheaders); +timetable = json.loads(result.text); +print(timetable); +days=timetable["days"]; +courseteachers=set(); +courserooms=set(); +courseklassen=set(); +courseslots=[]; +for day in days: + grids=day["gridEntries"]; + for grid in grids: + print(grid); + teachers=grid["position2"]; + for teacher in teachers: + teachername=teacher["current"]["displayName"]; + print(teachername); + courseteachers.add(teachername); + try: + for room in grid["position3"]: + roomname=room["current"]["displayName"]; + roomlongname=room["current"]["longName"]; + print(roomname); + myrooms[roomname] = roomlongname; + courserooms.add(roomname); + except TypeError: + print("Cannot handle: "); + print(grid); + pass; + for klasse in grid["position1"]: + klassenname=klasse["current"]["displayName"]; + print(klassenname); + courseklassen.add(klassenname) + duration=grid["duration"]; + print(duration); + courseslots.append({"teachers": list(courseteachers), + "rooms": list(courserooms), + "klassen": list(courseklassen), + "time": duration}); +mycourses.append({"melpomeid": melpomeid, + "shortname": shortname, + "longname": longname, + "slots": courseslots}); + +print(mycourses); + |
