Web-Scraping mit GPT-4o: leistungsstark, aber teuer
(blancas.io)- Ein Beitrag, der die Erfahrungen bei der Entwicklung eines KI-gestützten Web-Scrapers mit der neuen Funktion für strukturierte Ausgaben von OpenAI zusammenfasst
GPT-4o bitten, Daten zu scrapen
- Im ersten Experiment wurde GPT-4o gebeten, Daten aus einem HTML-String zu extrahieren
- Mit einem Pydantic-Modell wurde die strukturierte Ausgabe eingerichtet
from typing import List, Dict class ParsedColumn(BaseModel): name: str values: List[str] class ParsedTable(BaseModel): name: str columns: List[ParsedColumn] - Der System-Prompt lautete wie folgt:
Du bist ein Experte für Web-Scraping. Du erhältst den Inhalt einer HTML-Tabelle und sollst strukturierte Daten extrahieren.
Komplexe Tabellen parsen
- Nach Versuchen mit einfachen Tabellen wurden komplexe Tabellen wie die 10-Tage-Wettervorhersage von Weather.com getestet
- GPT-4o parste die Daten korrekt und ergänzte eine zusätzliche Spalte
Day/Night - Da die Spalte
Conditionauf der Website nicht sichtbar war, wurde zunächst eine Halluzination vermutet, beim Prüfen des Quellcodes zeigte sich jedoch, dass das entsprechende Tag existierte
Zusammengeführte Zeilen bringen das Modell aus dem Tritt
- Eine einfache Tabelle aus Wikipedia (Human Development Index) wurde getestet, doch wegen zusammengeführter Zeilen scheiterte das Modell
- Auch eine Anpassung des System-Prompts brachte keine Wirkung
GPT-4o bitten, XPath zurückzugeben
- Um die Kosten für OpenAI-API-Aufrufe zu senken, wurde darum gebeten, statt geparster Daten XPath zurückzugeben
- Allerdings lieferte das Modell häufig falsche XPath-Ausdrücke oder überhaupt keine Daten
Beide Ansätze kombinieren
- Es wurde ein Ansatz ausprobiert, bei dem zuerst Daten extrahiert und anschließend unter Bezug darauf XPath angefordert wird
- Diese Methode lieferte bessere Ergebnisse, verursachte jedoch das Problem, dass Bilder in Text umgewandelt wurden
GPT-4o ist sehr teuer
- Scraping mit GPT-4o ist kostspielig
- Durch zusätzliche Bereinigungslogik, die unnötige Daten aus HTML-Strings entfernt, wurden die Kosten gesenkt
Fazit und Demo
- Die Qualität der Datenextraktion durch GPT-4o war beeindruckend, die Kostenfrage jedoch enttäuschend
- Es wird eine einfache Demo mit Streamlit bereitgestellt
- Mit weiteren Experimenten gibt es noch viel Verbesserungspotenzial
Zusammenfassung von GN⁺
- Dieser Beitrag untersucht die Möglichkeiten und Grenzen von Web-Scraping mit KI
- Er zeigt, dass sich mit der Funktion für strukturierte Ausgaben von GPT-4o auch komplexe Tabellendaten präzise extrahieren lassen
- Trotz Kostenproblemen und einiger technischer Einschränkungen wird das Potenzial KI-gestützter Web-Scraping-Tools deutlich
- Andere Projekte mit ähnlicher Funktionalität sind unter anderem BeautifulSoup und Scrapy
1 Kommentare
Hacker-News-Kommentare
Es war erfolgreich, HTML in ein einfaches Format (z. B. Markdown) umzuwandeln und es dann an ein LLM zu übergeben
Für strukturierte Inhalte (z. B. Listen von Einträgen, einfache Tabellen) ist kein LLM nötig
Es ist überraschend, dass der Autor 99 % der Arbeit erledigt und für das verbleibende 1 % nicht ollama heruntergeladen und getestet hat
Es wird die Methode verwendet, einen Screenshot der Seite zu machen, den benötigten Teil auszuschneiden und an GPT zu übergeben
OpenAI hat kürzlich die Batch API angekündigt
Es war effektiv, ein HTML-Beispiel bereitzustellen und nach einem beautifulsoup-Code-Snippet zu fragen
Es wird gefragt, ob es einen "html reducer" gibt
Anstatt direkt mit GPT-4o zu scrapen, kann man GPT-4o ein einfaches Web-Scraper-Skript schreiben lassen
Bei Kadoa wird an AI-automatisierten Web-Scraping-Workflows gearbeitet
Es wird eine Datenbank für klassische Musik aufgebaut
<table>-Tag