- Video-Scraping: Bildschirmaufzeichnungsvideos in ein Google-Gemini-Modell einspeisen und in strukturierte Daten umwandeln
- Einsatz von Bildmodellen: Daten aus Bildern und unstrukturierten PDFs mit Gemini, GPT-4o, Claude 3.7 usw. extrahieren
- Nutzung moderner Bibliotheken wie Playwright: Browser-Automatisierung durchführen und mit Video-/Bildanalysemodellen integrieren
- Ein einstündiger interaktiver Workshop von Simon Willison auf der Datenjournalismus-Konferenz NICAR 2025
Aufbau des Workshops
1. Git-Scraping
- Was ist ein Git-Scraper?
- Mit GitHub Actions Websites oder Ressourcen regelmäßig scrapen und Änderungen protokollieren
- Lässt sich durch Klonen eines Template-Repos aus einem GitHub-Repository einfach einrichten
- Bei Eingabe einer bestimmten Website-URL oder JSON-Datei-URL wird die Ausführung täglich automatisch gestartet
- Fügt man der URL der Commit-Seite eines Repositories
.atom hinzu, lässt sich ein RSS-Feed erzeugen
- Über einen RSS-Reader können Änderungen an der Website in Echtzeit verfolgt werden
2. JavaScript-Scraping im Browser
- Bei komplexen Websites ist es schwierig, Daten allein durch einfaches HTML-Parsing zu extrahieren
- Nach dem Laden der Seite im echten Browser kann mit JavaScript gescrapt werden
- Extraktion von Tabellendaten: Mit JavaScript in den Browser-Entwicklertools lassen sich Tabellendaten in JSON umwandeln
- Verarbeitung von Seiten mit Infinite Scroll: Mit JavaScript lassen sich fortlaufend nachgeladene Inhalte automatisch sammeln
- Automatisierung mit Shot-scraper:
- Über bestimmte Befehle lassen sich Screenshots kompletter Webseiten aufnehmen
- Nach Ausführung von JavaScript-Code können Daten im JSON-Format ausgegeben werden
3. Extraktion strukturierter Daten mit LLMs
- Mit LLMs (Large Language Models) lassen sich unstrukturierte Daten in strukturierte Daten umwandeln
- Erforderlich sind API-Schlüssel für OpenAI und Google Gemini
- Ausführbar in Codespaces oder in einer lokalen Python-Umgebung
- Datenextraktion über ein Schema
- Ein Schema definiert das Format der Daten, die das LLM zurückgeben soll
- So können zum Beispiel Titel, URL und Datum im Schema definiert werden, um Daten in konsistenter Form zu extrahieren
- Beim Scraping von Webseiten kann die Ausgabe schema-basiert erfolgen
- Kostenberechnung und Modellauswahl
- Je nach Anzahl der Eingabe- und Ausgabetokens fallen modellabhängig Kosten an
- Das Modell GPT-4o mini ist günstig, andere Modelle können jedoch teuer sein
- So kann etwa das Modell GPT-4.5 für dieselbe Aufgabe deutlich höhere Kosten verursachen
- Gemini-Modelle sind relativ günstig und bieten verschiedene Optionen
- Datenextraktion aus PDFs
- Daten lassen sich aus PDF-Dokumenten wie dem FEMA Daily Operations Briefing extrahieren
- Gemini-Modelle können PDF-Dateien als Eingabe annehmen und als strukturiertes JSON ausgeben
- Bestimmte Tabellen oder Texte lassen sich aus PDFs extrahieren
- Datenextraktion aus Bildern
- GPT-4o kann Daten aus Bildern extrahieren
- Durch Einspeisen eines Screenshots kann das Modell strukturierte Daten ausgeben
- Tipps zur Modellauswahl
- Das Modell Gemini 2.0 Pro ist kostenlos, unterliegt aber strengen Ratenlimits
- Unter Berücksichtigung von Kosteneffizienz und Leistung sollten mehrere Modelle getestet und ausgewählt werden
- Je nach Eigenschaften der Webseite kann shot-scraper nützlicher sein als ein LLM
- Herausforderungen bei der Verarbeitung komplexer Daten
- Bei der Extraktion aus komplexen Infografiken oder Karten kann die Modellleistung variieren
- Es ist nötig, verschiedene Modelle auszuprobieren und das Modell mit der besten Leistung auszuwählen
4. Video-Scraping mit Google AI Studio
- Video-Scraping ist eine leistungsfähige Methode, um Daten von Websites zu extrahieren, die sich mit herkömmlichem Scraping nur schwer erfassen lassen
- Google-Gemini-Modelle können Videoeingaben entgegennehmen und in strukturierte Daten im JSON-Format umwandeln
- Nach einer Bildschirmaufzeichnung kann das Video in das AI-Modell eingespeist werden, um Daten zu extrahieren
- Ablauf des Video-Scrapings
- Zu dem Abschnitt der Website navigieren, der die gewünschten Daten enthält
- Ein Bildschirmaufnahme-Tool starten (z. B. QuickTime Player)
- Die Website durchsuchen → an wichtigen Stellen kurz pausieren
- Das aufgezeichnete Video in Google AI Studio hochladen
- In AI Studio einen Modell-Prompt verfassen und Daten extrahieren
- Mit dem Schema-Extraktionstool können die Daten im JSON-Format strukturiert werden
- Vorteile des Video-Scrapings
- Komplexe Website-Strukturen lassen sich umgehen
- Nützlich für Seiten, die JavaScript-Rendering benötigen
- Verschiedene Daten auf einer Seite (Text, Tabellen, Bilder usw.) lassen sich extrahieren
- Hinweise
- Die meisten in AI Studio angebotenen Funktionen sind kostenlos, die eingegebenen Daten könnten jedoch zum Training verwendet werden
- Sicherheitskritische Daten sollten besser nicht eingegeben werden
- Bei komplexen Websites kann Video-Scraping effizienter sein als andere Scraping-Techniken
- Echtzeit-Streaming-Option
- Mit der Option Stream Realtime in AI Studio ist Echtzeit-Datenextraktion möglich
- Kann auch bei dynamischen Inhalten wirksam sein, die sich schwer scrapen lassen
- Einsatz im Newsroom
- Nützlich für komplexe Datenextraktion und Automatisierung im Newsroom
- Durch Tests der Leistung und Genauigkeit von Gemini-Modellen lässt sich die optimale Methode ableiten
- Auch nach dem Workshop sind Zusammenarbeit und Feedback möglich
Zusätzliche Tools und Materialien
- git-scraper-template – Template zur Einrichtung von Git-Scraping
- shot-scraper-template – Template zur Automatisierung von Webseiten-Screenshots
- shot-scraper har - Erstellt HTML-Archive. Mit
--zip wird auch eine komprimierte Datei erzeugt (einschließlich JSON und weiterer Assets)
- git-history – Wandelt Git-Commit-Logs in eine SQLite-Datenbank um
3 Kommentare
Hm … die Nutzung über GitHub Actions verstößt wohl gegen die GitHub-Richtlinien.
Es wäre wirklich schön, wenn es das auch für Android gäbe.
Wenn es Funktionen zur Umgehung von Anti-Bot-Maßnahmen hätte, könnte es wohl zum Gewinner des Marktes werden.