def loadDate(client, date): """Load the page for a date and blocks until the html is ready""" url = 'https://otv.karlsruhe.de/terminmodul/live/termin/index' dateStr = date.strftime('%Y-%m-%d') req = QWebEngineHttpRequest.postRequest(QUrl(url), { 'selectedDate': dateStr, 'baseUrl': '/terminmodul/live' }) client.myload(req)
if __name__ == '__main__': client = Client() # load service selection page url = 'https://otv.karlsruhe.de/terminmodul/live/index/index/dienststelle/38' client.myload(QUrl(url)) # print(client.html) # choose application and load calendar page calendarUrl = 'https://otv.karlsruhe.de/terminmodul/live/dienstleistung/save' req = QWebEngineHttpRequest.postRequest( QUrl(calendarUrl), { 'dienstleistungsid[]': '460', 'personenzahl[460]': '1', 'personenzahl[458]': '1', 'bemerkung': '', 'anmeldung_action': '1', 'lang': 'de', 'weiter': 'Weiter: Terminauswahl' }) client.myload(req) # get all possible days (excluding weekends and holidays) within 90 days startDate = getSelectedDate(client.html) holidays = set( getHolidays(startDate) + getHolidays(startDate + datetime.timedelta(days=60))) possibleDates = [] for dayDelta in range(90): date = startDate + datetime.timedelta(days=dayDelta)