36 Punkte von xguru 2025-03-13 | 3 Kommentare | Auf WhatsApp teilen
  • 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
    1. Zu dem Abschnitt der Website navigieren, der die gewünschten Daten enthält
    2. Ein Bildschirmaufnahme-Tool starten (z. B. QuickTime Player)
    3. Die Website durchsuchen → an wichtigen Stellen kurz pausieren
    4. Das aufgezeichnete Video in Google AI Studio hochladen
    5. In AI Studio einen Modell-Prompt verfassen und Daten extrahieren
    6. 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

 
roxie 2025-03-16

Hm … die Nutzung über GitHub Actions verstößt wohl gegen die GitHub-Richtlinien.

 
lighteach 2025-03-14

Es wäre wirklich schön, wenn es das auch für Android gäbe.

 
wantutopia 2025-03-13

Wenn es Funktionen zur Umgehung von Anti-Bot-Maßnahmen hätte, könnte es wohl zum Gewinner des Marktes werden.