Log in to leave a comment
No posts yet
Wenn Sie HTML-Webseiten einfach als reinen Text crawlen, verliert sich der KI-Agent. Der Text ist zwar sichtbar, aber die Hierarchie des Dokuments verschwindet. Laut Forschungsdaten aus dem Jahr 2024 steigert die Bewahrung der hierarchischen Struktur eines Dokuments die Suchgenauigkeit um mehr als 30 % im Vergleich zum einfachen Zerschneiden von Text (Text Splitting). Ich bin fest davon überzeugt, dass der Schlüssel darin liegt, dem Agenten zu ermöglichen, die Relevanz von Daten anhand von Header-Informationen sofort zu erfassen.
Der erste Schritt besteht darin, get_text() von BeautifulSoup zu verwerfen. Verwenden Sie stattdessen die Markdownify-Bibliothek, um HTML-Tags auf Markdown-Header abzubilden. Nutzen Sie eine Parent-Child-Chunking-Strategie, bei der das konvertierte Markdown nach Headern unterteilt wird, um den gesamten übergeordneten Abschnitt als Kontext bereitzustellen. In Kombination mit der Trafilatura-Bibliothek lässt sich der Token-Verbrauch bei der Extraktion des Hauptinhalts um bis zu 67 % senken. Dies ist der sicherste Weg, um Kosten zu sparen und gleichzeitig die Genauigkeit zu erhöhen.
Statische Crawler können Daten, die hinter mit JavaScript implementierten Tab-Menüs oder Akkordeons verborgen sind, niemals lesen. Ich betrachte diese unsichtbaren Daten als Hauptverursacher für eine geminderte Antwortqualität in RAG-Systemen. Playwright verbindet sich direkt mit dem CDP (Chrome DevTools Protocol), dem Standardprotokoll des Browsers, und steuert dynamische Inhalte daher schneller und leistungsfähiger als Selenium. Praxisbeispiele zeigen, dass Systeme mit automatisierten Klicksequenzen 30 % mehr Daten erfassen konnten als die manuelle Extraktion.
Wenn Sie eine Automatisierungslogik auf Basis von Playwright aufbauen, lassen Sie die Funktion page.wait_for_selector in einer Schleife laufen. Sie müssen sicher warten, bis klickbare Elemente auf dem Bildschirm erscheinen. Rufen Sie anschließend die Methode scroll_into_view_if_needed() auf, um unendliches Scrollen oder AJAX-Anfragen zu erzwingen. Klicken Sie nacheinander auf jeden Tab und erfassen sowie speichern Sie den veränderten DOM-Zustand in Echtzeit. Nur durch diesen Prozess entsteht eine Datenbank ohne Datenlücken.
Werbung, Footer und Menüleisten verschwenden das Kontextfenster des Agenten und verunreinigen die Embedding-Vektoren. Das Rauschen auf Webseiten ist gravierender als man denkt; unbereinigte Daten sind wie Gift für die KI. Readability.js analysiert die Dichte von Text und Links, um nur den eigentlichen Hauptinhalt herauszufiltern. In Benchmark-Ergebnissen erreichte Readability über alle Seitentypen hinweg einen Performance-Median von 0,970 und entfernte Nicht-Content-Elemente präzise.
Integrieren Sie diesen Algorithmus in Ihre Datenpipeline. Filtern Sie das gesammelte HTML mit Readability.js, um nur Titel und Haupttext zu erhalten, und entfernen Sie anschließend unnötige Leerzeichen mit regulären Ausdrücken. Wenn Sie diesen bereinigten Text in Markdown umwandeln und speichern, reduziert sich die Datenmenge, die der Agent lesen muss, um bis zu 90 %. Die Suchrelevanz verbessert sich um das 2,29-fache. Es ist weitaus effizienter, saubere Daten einzuspeisen, anstatt den Agenten mit einer schieren Masse an Rohdaten zu überfordern.
Die meisten Webseiten blockieren den Zugriff von KI-Agenten, indem sie das navigator.webdriver-Flag prüfen. Wenn Sie keine Captcha-Abfragen sehen möchten, ist eine Stealth-Strategie unerlässlich. Mechanische Bewegungen werden schnell enttarnt. Ich halte die mathematische Simulation menschlichen Verhaltens für die intelligenteste Lösung.
Nutzen Sie zunächst das Plugin playwright-stealth, um das WebDriver-Flag zu entfernen und den User-Agent als aktuelle Chrome-Version zu tarnen. Verwenden Sie für Mausbewegungen keine geraden Linien, sondern Bézier-Kurven:
Fügen Sie auch beim Tippen zufällige Verzögerungen zwischen 50 ms und 200 ms pro Zeichen ein. Allein durch zufällige Pausen von 2 bis 5 Sekunden beim Seitenwechsel lassen sich Anti-Bot-Systeme umgehen. Das mag zwar etwas langsamer erscheinen, ist aber wesentlich schneller, als aufgrund einer Sperre überhaupt keine Daten sammeln zu können.