HISinOne-Workflow

Diese Seite beschreibt den typischen Scraping-Prozess für HISinOne- Vorlesungsverzeichnisse.

Grundidee

Der HISinOne-Teil von HEXscrapePy arbeitet in zwei Stufen:

  1. In einem ersten Schritt werden die Basedaten eines Semesters geladen
  2. 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 aus
  • his_fetch_base_data(): lädt die Kursübersicht eines einzelnen Semesters und speichert sie als CSV
  • his_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übersicht
  • his_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 über his_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() und his_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.