Transcript
00:00:00Das ist Scrapling, ein Python-Scraper, der versucht, das größte Problem beim Web-Scraping zu lösen.
00:00:05Der Scraper funktioniert heute, aber bricht sofort zusammen, wenn sich die Seite ändert. Eine umbenannte Klasse,
00:00:10ein verschobenes div, ein Bot-Check, und schon ist deine Daten-Pipeline tot. Scraplings Versprechen ist,
00:00:17dass dein Scraper sich anpassen kann, anstatt zu versagen. Er hat über 53.000 Sterne auf GitHub,
00:00:22unterstützt adaptives Parsen, Stealth-Fetching und größere Crawler-Workflows.
00:00:27Ich werde die eine Frage testen, auf die es wirklich ankommt.
00:00:30Kann er eine Webseitenänderung überleben, ohne Selektoren neu zu schreiben? Das finden wir jetzt heraus.
00:00:40Was ist also Scrapling? Scrapling ist ein adaptives All-in-One-Framework für Python-Web-Scraping.
00:00:46Du erhältst einen selbstheilenden Parser, Stealth-Fetcher, browserbasiertes Fetching, wenn JavaScript benötigt wird,
00:00:51und ein Spider-Framework für größere Crawls. Eine Installation, eine API. Das bedeutet weniger kaputte
00:00:57Scraper und mehr nutzbare Daten. Sehen wir uns nun den Teil an, der wirklich wichtig ist.
00:01:03Wenn dir Tools zum Beschleunigen deines Workflows gefallen, abonniere den Kanal. Wir bringen ständig
00:01:08neue Videos heraus. Hier habe ich ein einfaches Setup. Ich habe Scrapling bereits installiert,
00:01:13also halten wir uns kurz. Ein Import und ein Aufruf reichen, um die Seite abzurufen. Oben habe ich HTML erstellt, das sich ändert.
00:01:21Das eine ist wie eine generische Startseite. Dann habe ich dasselbe genommen, aber die CSS-Selektoren gewechselt.
00:01:27Nehmen wir an, ich will den Produktnamen und den Preis. Normalerweise würde ich sie mit CSS-Selektoren greifen,
00:01:34richtig? Also page CSS, ich füge meinen Selektor ein, auto-save auf true. Das mache ich und es wird
00:01:40funktionieren, und wir erhalten ein Dictionary mit Daten zurück. Sieht normal aus. Zwei Selektoren, ein Dictionary,
00:01:46ich mache weiter. Das war's. Aber gleichzeitig ist genau das das Problem, denn ein normaler Scraper funktioniert
00:01:52großartig, bis sich die Seite ändert. Was passiert, wenn sich die Seite über Nacht zufällig ändert? Sie gestalten
00:01:58sie neu. Sie tun etwas, um das zu verhindern. Also wird aus Produkttitel eine Artikelüberschrift oder aus Produktpreis ein
00:02:04Preiswert. Es sind dieselben Daten auf der Seite, aber das gesamte DOM ändert sich. Die alten Selektoren sollten
00:02:11jetzt tot sein. Und hier werden die meisten Scraper einfach kaputtgehen. Aber jetzt können wir den adaptiven Modus einschalten.
00:02:18Aus einer Änderung von autosave gleich true wird adaptive gleich true. Jetzt kann ich also immer noch Produkttitel
00:02:26mit adaptive auf true setzen. Dieselben Daten. Ich habe die Selektoren nicht geändert. Es ist eine andere Seitenstruktur ohne
00:02:34Selektor-Neuschreiben. Das ist die Hauptidee hier. Wenn du ein Element mit autosave true scrapst,
00:02:40zeichnet Scrapling Hinweise dazu auf. Also wird es Dinge wie das Tag, Attribute,
00:02:44Eltern- und Kindelemente, jeglichen benachbarten Text, wahrscheinlich die DOM-Position und die strukturelle Form aufzeichnen. Wenn sich also
00:02:50ein Klassenname ändert, hat Scrapling noch mehr Hinweise übrig. Es muss nicht sein, dass die gesamte Seite gleich bleibt.
00:02:56Es benötigt nur genügend strukturelle Signale, um das Element wiederzuerkennen. Und das ist der
00:03:01Teil, der wichtig ist, denn echte Scraper-Fehler sind fast nie eine komplette Neugestaltung. Es ist eine umbenannte Klasse,
00:03:06ein neuer Wrapper, ein verschobenes Layout, eine Kleinigkeit. Genau dafür wurde adaptives Matching gebaut.
00:03:13Scrapling hat drei große Teile, auf die es ankommt. Der erste ist der adaptive Parser, den du gerade gesehen hast.
00:03:18Dann gibt es den Multiple-Fetcher, ein Workflow, das richtige Werkzeug für den Job. Der Fetcher nutzt einfaches HTTP,
00:03:25schnell für einfache Webseiten. Der Stealthy-Fetcher kann Anti-Bot-Maßnahmen bei Bedarf umgehen. Der dynamische Fetcher ist ein echter
00:03:32Browser für JS-lastige Seiten. Eine API, den Fetcher austauschen, den Code beibehalten. Das Spider-Framework ist für, wenn schnelle
00:03:39Skripte zu einem echten Crawler werden. Async-Crawling, Pausieren und Fortsetzen, Proxy-Rotation, Streaming und all diese
00:03:46gemischten Sitzungen. Das Zeug, das man normalerweise später hinzufügt, ist bereits da. Scrapling ist nicht einfach nur ein weiterer
00:03:53Parser. Es ersetzt den Scraping-Stack. Requests, Beautiful Soup, Playwright, Retry-Logik, Proxy-Helfer,
00:04:00Spider-Code mit einem Workflow. Scrapling sagt nicht, dass Beautiful Soup nutzlos ist, und es sagt nicht,
00:04:06dass Playwright oder Scrapy tot sind. Beautiful Soup plus Requests ist immer noch großartig für einfache Seiten. Es ist einfach,
00:04:13es ist lesbar und jeder versteht es, aber es bietet keinerlei Stealth. Es bietet dir keine
00:04:20adaptiven Selektoren und es rendert kein JavaScript. Und bei größeren Parsing-Jobs kann es zum
00:04:26eigentlichen Flaschenhals werden. Nun, Scrapy ist mächtig. Wenn du seriöse Crawling-
00:04:31Infrastruktur baust, verdient Scrapy immer noch Respekt, aber Scrapy bedeutet oft Einstellungen, Pipelines, Middleware,
00:04:36Erweiterungen und viel mehr Setup. Playwright und Selenium sind großartig, wenn du einen echten Browser brauchst.
00:04:42Manchmal braucht die Seite einfach JavaScript. Da führt kein Weg dran vorbei. Aber Browser sind schwerfällig. Sie sind
00:04:48langsamer als rohes HTTP und verbrauchen mehr Speicher. Und noch einmal, sie lösen immer noch nicht das Problem der kaputten
00:04:54Selektoren. Sie führen die Seite aus. Sie verstehen nicht, was dein Scraper extrahieren sollte. Also mit Scrapling
00:05:01kannst du schnelles Fetching nutzen, wenn möglich, Stealth, wenn du es brauchst, Browser-Rendering, wenn die Seite es
00:05:06erfordert, und adaptives Parsen verwenden. Damit eine kleine Frontend-Änderung nicht alles in die Luft jagt. Nun, das alles
00:05:12bedeutet nicht, dass Scrapling keine Probleme hat. Wenn du es mit Data-Dome-Schutz,
00:05:17fortgeschrittenem Fingerprinting oder aggressiven Ratenbegrenzungen zu tun hast, brauchst du vielleicht trotzdem gute Proxys. Scrapling kann also
00:05:23helfen, aber es macht dich nicht unsichtbar. Dynamisches Fetching kann auch zusätzliches Browser-Setup bedeuten. Das ist
00:05:29einfach der Kompromiss, wenn JavaScript-Rendering involviert ist. Hier ein Denkanstoß zu all dem.
00:05:34Scrapling ist einen Versuch wert, wenn du echte Scraping-Arbeit leistest, besonders wenn du Daten-Pipelines,
00:05:41RAG-Jobs, KI-Agenten oder irgendetwas baust, das weiterlaufen muss, nachdem sich die Zielseite geändert hat. Der
00:05:47stärkste Grund, es zu verwenden, ist nicht, dass es Scraping überhaupt erst ermöglicht. Wir haben bereits Tools, die das
00:05:53tatsächlich können. Der stärkste Grund ist, dass es den Wartungsaufwand reduziert. Ich würde es wahrscheinlich
00:05:59einfach überspringen, wenn du ein wirklich winziges Skript hast. Requests und Beautiful Soup werden es tun,
00:06:04oder? Wenn dir solche Tools gefallen, abonniere den BetterStack-Kanal. Wir sehen uns im nächsten Video.
Community Posts
No posts yet. Be the first to write about this video!
Write about this video