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);