00:00:00Wenn man einen Scraper für RAG braucht, ist das Problem nicht die Datenbeschaffung,
00:00:03sondern die Bereinigung.
00:00:04JavaScript macht Probleme, HTML ist unübersichtlich,
00:00:07und wir verschwenden Zeit damit, es für das LLM nutzbar zu machen.
00:00:11Die Lösung hierfür ist CrawlForAI.
00:00:13Es wurde für KI entwickelt, unterstützt Async,
00:00:15beherrscht JavaScript und liefert sauberes Markdown oder JSON,
00:00:18und es läuft bis zu sechsmal schneller als klassische Python-Scraper wie Scrapy.
00:00:23Wir erhalten modellreife Daten so schnell wie nie zuvor.
00:00:26Wie funktioniert das? Was macht es anders?
00:00:29Das sind die entscheidenden Fragen.
00:00:30[MUSIK]
00:00:35Was also ist CrawlForAI wirklich?
00:00:37Zuerst wirkt es wie ein gewöhnlicher Python-Crawler,
00:00:40aber es ist nicht für Scraping, sondern für KI konzipiert.
00:00:43Hier liegt der Unterschied.
00:00:44Die meisten Crawler liefern rohes HTML,
00:00:46CrawlForAI liefert sauberes Markdown oder strukturiertes JSON, bereit für ein LLM.
00:00:52Es nutzt Playwright für JavaScript,
00:00:54läuft asynchron für echte Skalierbarkeit
00:00:57und bietet einen Prefetch-Modus, der schweres Rendering überspringt, wenn man nur Links braucht.
00:01:01Das ist wichtig, denn beim Bau von Chatbots,
00:01:04Assistenten oder Agenten ist nicht das Crawlen das Problem,
00:01:08sondern ungeordnete Webdaten in nutzbare Daten zu verwandeln.
00:01:11CrawlForAI löst dieses Problem komplett – und zwar schnell.
00:01:15Wenn euch dieser Content gefällt, abonniert gerne den Kanal.
00:01:18Wir veröffentlichen ständig neue Videos.
00:01:20Fangen wir einfach an. Hier ist der simpelste Crawl, den ich erstellt habe.
00:01:23Vieles davon stammt aus deren Repo und der Doku,
00:01:25ich habe nur ein paar Zeilen angepasst, um es zum Laufen zu bringen.
00:01:28Ich habe den AsyncWebCrawler importiert, der asynchrone Webanfragen für KI-Pipelines verarbeitet.
00:01:34Dann rufe ich “run” für eine Tech-News-URL auf, das ist alles.
00:01:38Und schaut euch die Ausgabe an.
00:01:40Das ist kein rohes HTML, das wir zurückbekommen,
00:01:43es ist sauberes Markdown, sauberes JSON.
00:01:45Strukturierte Überschriften, erhaltene Links,
00:01:47und im Hintergrund ruft es die Seite ab,
00:01:50analysiert das DOM, entfernt das Rauschen
00:01:52und bewertet den Inhalt, damit wir das Wichtige ohne unnötigen Ballast behalten.
00:01:57Wenn wir also einen News-Summarizer oder einen RAG-Prototyp bauen wollen,
00:02:02müssen wir keine Bereinigungs-Skripte schreiben,
00:02:04sondern geben das einfach direkt an das Modell weiter.
00:02:07Ich hatte herkömmliches Scraping erwartet,
00:02:11aber wir bekamen Daten, die bereits perfekt vorbereitet waren.
00:02:14Diese Lücke zu schließen, spart enorm viel Zeit.
00:02:17Ab hier wird es sogar noch interessanter.
00:02:19Beim Ausprobieren stellte ich fest:
00:02:20Man denkt vielleicht, jede Seite müsse gerendert werden.
00:02:23Das stimmt aber gar nicht. Seht selbst.
00:02:25Das ist derselbe Crawler,
00:02:27aber jetzt setzen wir “prefetch” auf True.
00:02:30Ich teste das an Hacker News.
00:02:31Seht ihr, wie schnell das geht?
00:02:33Es war wahnsinnig beeindruckend, wie schnell das lief.
00:02:35Anstatt jede Seite komplett zu rendern,
00:02:37erfasst er zuerst die Links,
00:02:38einfach durch asynchrones Abrufen.
00:02:39Für einen Aggregator ist das ideal.
00:02:42Wir finden erst, was wir brauchen,
00:02:44und extrahieren es später.
00:02:45Man crawlt nicht alles,
00:02:47nur das Nötigste.
00:02:48Dieser Unterschied macht sich massiv bemerkbar,
00:02:50wenn man mit Hunderten oder Tausenden URLs arbeitet.
00:02:52Reden wir nun etwas mehr über den produktiven Einsatz.
00:02:55Ich starte einen Deep Crawl mit der BFS-Strategie.
00:02:58Das ist deren Version eines Breitensuche-Ansatzes.
00:03:01Dann definiere ich hier den Resume-Status
00:03:03und füge einen Callback für Statusänderungen hinzu.
00:03:07Ich starte den Crawl
00:03:08und breche den Prozess dann hart ab.
00:03:10Bei den meisten Tools fängt man nach einem Abbruch
00:03:13wieder ganz von vorne an.
00:03:14Aber wenn ich das hier neu starte – passt auf –
00:03:16nutzen wir den gespeicherten JSON-Status,
00:03:19und es macht genau dort weiter, wo es aufgehört hat, ohne Datenverlust.
00:03:22Beim Aufbau einer großen RAG-Wissensdatenbank
00:03:24ist ein Absturz also nicht mehr nervig.
00:03:26Normalerweise ist so etwas einfach nur teuer.
00:03:29Hier aber wird die Arbeit einfach fortgesetzt.
00:03:30Was die meisten Scraper nicht können, ist semantische Extraktion.
00:03:35Wenn ich ein Schema mit Pydantic definiere –
00:03:37also Jobtitel, Firma, Gehalt –
00:03:39und dann Indeed scrape.
00:03:40Dann konfiguriere ich die LLM-Extraktionsstrategie
00:03:44mit einer Anweisung und einem Provider.
00:03:46Ich lasse es über Indeed laufen,
00:03:48die Jobbörse,
00:03:49und schaut euch dieses Ergebnis an.
00:03:51Das ist wirklich extrem gut.
00:03:52Strukturiertes JSON mit sauberen Feldern.
00:03:54Und das passiert dabei im Hintergrund:
00:03:56CrawlForAI konvertiert die Seite,
00:03:58wie gesagt, wahlweise in Markdown oder JSON.
00:04:01Das wird dann an ein Modell gesendet.
00:04:03Das Modell strukturiert es basierend auf eurem Schema.
00:04:06Es wird nicht einfach Text gescrapt,
00:04:07sondern gezielt extrahiert, was wir wollen.
00:04:09Das LLM kann das jetzt verarbeiten.
00:04:11Das ist eine völlig neue Ebene für KI-gestützte Tools.
00:04:15Das war schon cool,
00:04:16aber betrachten wir das Ganze mal aus der Distanz.
00:04:18Die Vorteile: Es ist schnell.
00:04:20Wirklich schnell, bis zu sechsmal in Benchmarks.
00:04:22Es verarbeitet JavaScript automatisch.
00:04:24Es ist asynchron, skalierbar
00:04:26und setzt nach Abstürzen fort.
00:04:28Aber das Highlight ist,
00:04:29dass es LLMs direkt integriert.
00:04:32Zudem ist es Open Source.
00:04:33Einfach per Pip installieren und es läuft.
00:04:35Wie bei allem
00:04:36gibt es natürlich auch hier Kompromisse.
00:04:38Es ist nur für Python verfügbar.
00:04:39Manche nutzen Python, andere vielleicht nicht.
00:04:41Das könnte ein Nachteil sein.
00:04:42LLM-Features erfordern API-Keys, außer man nutzt lokale Modelle wie Ollama.
00:04:46Trotzdem kann man beim Crawlen an Rate-Limits stoßen,
00:04:49und wie bei jedem dynamischen Open-Source-Projekt
00:04:51muss man es aktuell halten.
00:04:53Es kommen ständig Updates.
00:04:54Aber für KI-fokussierte Entwickler
00:04:56löst es viele Probleme,
00:04:58besonders in RAG-Pipelines.
00:05:00Vergleichen wir es mal mit dem, was ihr vielleicht schon nutzt.
00:05:03Scrapy – wenn ihr von Python kommt.
00:05:05Es ist super für riesige statische Crawls,
00:05:07aber es ist regelbasiert und braucht viel Boilerplate.
00:05:10Ehrlich gesagt dauert die Einrichtung ziemlich lange.
00:05:13Wenn man LLM-Extraktion für Markdown-Ausgaben will,
00:05:16muss man sich eigene Layer bauen.
00:05:17Bei CrawlForAI ist das bereits eingebaut.
00:05:19Dann gibt es Beautiful Soup.
00:05:21Das ist sehr leichtgewichtig, fast schon zu simpel,
00:05:23denn es ist eigentlich nur ein Parser.
00:05:25Es hat keine Crawling-Engine
00:05:26und kein JavaScript-Rendering.
00:05:28Man endet damit, alles mühsam zusammenzustückeln.
00:05:31Und dann natürlich der Klassiker: Selenium.
00:05:33Es rendert JavaScript, klar.
00:05:36Aber es ist langsamer und erfordert mehr manuelle Arbeit.
00:05:38Asynchrone Workflows zu skalieren, bleibt damit mühsam.
00:05:42CrawlForAI nutzt intern Playwright
00:05:44und bietet eine klare asynchrone API.
00:05:46Wenn ihr traditionelle, regelbasierte Crawler
00:05:48für statische Daten baut,
00:05:49reichen eure bisherigen Tools völlig aus.
00:05:52Aber wenn ihr KI-Systeme entwickelt –
00:05:54RAG-Pipelines, autonome Agenten –
00:05:56dann ist CrawlForAI genau für diese Welt gemacht.
00:06:00Es ist einfach ein extrem cooles KI-Tool.
00:06:02Es crawlt nicht nur Seiten, es bereitet die Daten vor,” Und zwar genau so,
00:06:04wie das LLM sie braucht.
00:06:06Das ist also CrawlForAI.
00:06:08Wenn ihr euch für KI interessiert, solltet ihr es euch ansehen.
00:06:11Es war unglaublich schnell, ich war echt baff.
00:06:14Und es ist wirklich klasse,
00:06:15wenn man diese RAG-Pipelines baut,
00:06:17weil man die Daten sauber in die LLMs einspeisen kann.
00:06:20Wir sehen uns im nächsten Video.