HISinOne-Workflow
Diese Seite beschreibt den typischen Scraping-Prozess für HISinOne- Vorlesungsverzeichnisse.
Grundidee
Der HISinOne-Teil von HEXscrapePy arbeitet in zwei Stufen:
- In einem ersten Schritt werden die Basedaten eines Semesters geladen
- Anschließend werden auf der Basis der Basedaten (Titel, Kurs-ID) die Kursdaten ausgelesen.
Wichtigste Einstiegsfunktionen
his_scrape_all_semesters(): führt den kompletten HISinOne-Lauf für ein oder mehrere Semester aushis_fetch_base_data(): lädt die Kursübersicht eines einzelnen Semesters und speichert sie als CSVhis_scrape_detail_data_playwright(): nutzt vorhandene Basisdaten und ergänzt Detailinformationen zu jeder Veranstaltung
Ablauf im Detail
1. Browser-Session starten
his_start_session() startet Playwright, öffnet Chromium und lädt die
HISinOne-Startseite. Diese Funktion ist die Grundlage für alle weiteren
Interaktionen im Browser.
2. Semester auswählen
Je nach Schritt im Workflow werden zwei unterschiedliche Helfer verwendet:
his_select_semester_base_data()wählt ein Semester aus und startet direkt die Suche für die Kursübersichthis_select_semester()setzt nur das Semester, ohne sofort eine Suche auszulösen
3. Kursübersicht einsammeln
his_search_and_get_data() liest die aktuell sichtbare Ergebnistabelle aus,
folgt der Pagination und baut daraus ein gemeinsames DataFrame über alle
Trefferseiten hinweg.
4. Detailseiten pro Kurs auslesen
his_scrape_detail_data_playwright() nimmt die Basistabelle als Ausgangspunkt, sucht jede
Veranstaltung erneut im HIS und öffnet dann die passende Detailseite. Dort
werden unter anderem diese Bereiche ausgelesen:
- Termine über
his_scrape_termine() - Inhalte aus dem Tab
Inhalteüberhis_scrape_inhalte_playwright() - zugeordnete Module und Studiengänge über
his_scrape_module_studiengaenge_playwright() - Metadaten wie Titel, Nummer und Scraping-Datum
Wann nutze ich welche Funktion?
- Nutze
his_scrape_all_semesters(), wenn du einen möglichst vollständigen, wiederholbaren End-to-End-Lauf möchtest. - Nutze
his_fetch_base_data(), wenn du nur die Kursübersicht eines Semesters brauchst. - Nutze
his_scrape_detail_data_playwright(), wenn du bereits eine Basistabelle hast und nur die Detailinformationen ergänzen willst. - Nutze
his_scrape_termine(),his_scrape_inhalte_playwright()undhis_scrape_module_studiengaenge_playwright(), wenn du einzelne Bereiche einer Detailseite gezielt testen oder separat weiterverwenden möchtest.
Wichtige technische Eigenschaften
- Das HIS-Scraping arbeitet aktiv mit einem Browser und reagiert daher stärker auf Änderungen in Oberfläche und Interaktionslogik.
his_scrape_detail_data_playwright()enthält Resume-Logik, damit unterbrochene Läufe fortgesetzt werden können.- Für lange Läufe gibt es automatische Browser-Neustarts, um Stabilitäts- und Speicherprobleme besser abzufangen.