LSF-Workflow
Diese Seite beschreibt den typischen Scraping-Prozess für LSF- Vorlesungsverzeichnisse.
Grundidee
Das LSF-Scraping ist in zwei klar getrennte Phasen aufgeteilt:
- In einem ersten Schritt werden die Basedaten eines Semesters geladen.
- Anschließend werden die URLs der Kurse aufgerufen und die Kursdaten gescrapet.
Wichtigste Einstiegsfunktionen
lsf_scrape_base_data(): erstellt die Veranstaltungsliste eines oder mehrerer Semesterlsf_scrape_veranstaltungsdetails(): lädt die Detailseiten zu vorhandenen Veranstaltungs-URLs und ergänzt die inhaltlichen Felderlsf_scrape_all_semesters(): kombiniert beide Schritte zu einem kompletten Semesterlauf
Zwei Wege zu den Basisdaten
lsf_scrape_base_data() unterstützt zwei Modi:
method="path": rekursive Navigation durch die Baumstruktur des Vorlesungsverzeichnissesmethod="search": Erhebung über die Suchmaske mit automatischer Pagination
Der Unterschied ist praktisch wichtig:
pathfolgt der fachlichen Struktur des Verzeichnisses und kann den Navigationspfad einer Veranstaltung mitschreibensearchist direkter, liefert aber nicht dieselben Strukturinformationen
Ablauf im Detail
1. Semester auswählen
lsf_select_semester() navigiert innerhalb des LSF zum gewünschten Semester und
öffnet das Vorlesungsverzeichnis.
2. Basisdaten einsammeln
Je nach Modus verwendet lsf_scrape_base_data() intern:
_scrape_via_path()_scrape_via_search()
Beide Wege greifen auf gemeinsame Hilfsfunktionen zurück, damit erkannte Veranstaltungstabellen einheitlich verarbeitet werden:
_find_event_tables()_parse_event_table()lsf_normalize_url()
3. Detailseiten laden
lsf_scrape_veranstaltungsdetails() ruft jede Veranstaltungsseite einzeln ab. Im
Normalfall passiert das zunächst über lsf_fetch_course_html().
Wenn eine LSF-Instanz Inhalte erst nach dem Aufklappen von Bereichen sichtbar
macht, wird intern bei Bedarf auf lsf_fetch_course_html_expanded()
umgeschaltet.
4. Inhalte aus Detailseiten parsen
Für die einzelnen Inhaltsblöcke gibt es getrennte Parser. Dazu gehören zum Beispiel:
lsf_extract_veranstaltungstitel()lsf_extract_grunddaten()lsf_extract_termine()lsf_extract_dozenten()lsf_extract_zugeordnete_personen()lsf_extract_studiengaenge()lsf_extract_module()lsf_extract_einrichtung()lsf_extract_weitere_angaben()
Wann nutze ich welche Funktion?
- Nutze
lsf_scrape_all_semesters(), wenn du den vollständigen Workflow pro Semester in einem Schritt ausführen willst. - Nutze
lsf_scrape_base_data(), wenn du nur die Veranstaltungsliste oder die Basis-CSV erzeugen möchtest. - Nutze
lsf_scrape_veranstaltungsdetails(), wenn du bereits eine Tabelle mitURL_Eventhast und nur die Detaildaten ergänzen willst. - Nutze die
extract_*-Funktionen, wenn du HTML-Strukturen gezielt testen, Parser weiterentwickeln oder nur einzelne Inhaltsbereiche auslesen möchtest.
Wichtige technische Eigenschaften
- LSF wird überwiegend über HTML-Parsing verarbeitet und eignet sich daher gut für parserorientierte Tests.
- Die Detailparser sind bewusst modular gehalten, damit einzelne Bereiche separat verbessert oder ausgetauscht werden können.
- Resume-Logik und Zwischenspeicherung sind im Detail-Scraping bereits berücksichtigt.