Öffentliche Stammdaten automatisch beschaffen und zusammenführen
Ausgangslage
Ein zentraler Stammdatenbestand sollte laufend gegen öffentlich zugängliche Quellen geprüft und ergänzt werden. Bis dahin geschah das punktuell und von Hand. Änderungen fielen spät auf, der Pflegeaufwand war nicht planbar, und niemand konnte belastbar sagen, welcher Anteil des Bestands überhaupt aus öffentlichen Quellen zu decken ist.
Vorgehen
Bewusst zweistufig, statt sofort eine Pipeline zu bauen. In der ersten Stufe lief ein Prototyp vollständig auf lokalen Rechnern, ohne Serverinfrastruktur und damit ohne laufende Kosten, und hat je Zielfeld gemessen, was tatsächlich und in welcher Qualität abzuschöpfen ist.
Erst dieser Messbericht hat Umfang und Festpreis der Umsetzungsstufe festgelegt. Keine Seite trägt damit ein Blindrisiko, und teure Technik wird nur dort eingeplant, wo die Messung sie rechtfertigt. Seiten, die sich statisch auslesen lassen, brauchen keinen Browser-Renderer.
In der Umsetzung wurden die Extraktoren produktiv gehärtet: Parallelität, Wiederaufsetzbarkeit nach Abbruch, Wiederholungslogik, Renderer nur als Rückfallweg. Dazu ein Modul, das ein öffentliches Register anbindet, monatliche Veränderungen gegen den Vormonat bildet und die Einträge den Objekten des Bestands zuordnet.
Ergebnis
Ein monatlich reproduzierbarer Lauf, der je Objekt einen strukturierten Datensatz erzeugt, die Herkunft jedes Feldes belegt und auf günstiger Infrastruktur läuft. Die Grenze zum Kundensystem ist sauber gezogen: Wir liefern Daten, keine Klickstrecken.
Technik
Python, httpx, BeautifulSoup und selectolax, Playwright als Rückfallweg, Named-Entity-Erkennung, Polars, Delta und Parquet, Lakehouse-Anbindung, systemd und cron, Überwachung mit Alarmierung.