Kurzfassung: Scrapy Splash kombiniert die schnelle Crawling-Engine von Scrapy mit dem Headless-Browser Splash, um JavaScript-lastige Seiten darzustellen. Dieses Scrapy-Splash-Tutorial führt Sie durch die Docker-Einrichtung, die Konfiguration des Scrapy-Projekts, die Grundlagen von SplashRequest, Lua-Skripte für das Scrollen und Klicken, die Proxy-Integration sowie die Behebung der häufigsten Fehler, auf die Sie stoßen werden.
Scrapy ist eines der effizientesten Web-Crawling-Frameworks im Python-Ökosystem, hat jedoch eine bekannte Schwachstelle: Es kann kein JavaScript ausführen. Jede Website, die Daten über clientseitiges Rendering, AJAX-Aufrufe oder Single-Page-Application-Frameworks lädt, ist für einen Standard-Scrapy-Spider unsichtbar. Genau dieses Problem löst ein Scrapy-Splash-Tutorial.
Scrapy Splash ist eine Integrationsschicht zwischen Scrapy und dem Headless-Browser Splash. Splash ist ein leichtgewichtiger, Qt-basierter Rendering-Dienst, der von Zyte (dem gleichen Team hinter Scrapy) entwickelt wurde und eine HTTP-API bereitstellt. Anstatt einen vollständigen Desktop-Browser auszuführen, lädt Splash eine Seite in einer abgespeckten WebKit-Engine, führt das JavaScript aus und gibt vollständig gerenderten HTML-Code an Ihren Spider zurück. Ihre Parsing-Methoden arbeiten weiterhin mit Standard-CSS- und XPath-Selektoren, als hätte sich nichts geändert.
In diesem Leitfaden richten Sie Docker und Splash von Grund auf ein, konfigurieren Ihr Scrapy-Projekt, schreiben Spider, die dynamische Seiten rendern, erstellen Lua-Skripte für fortgeschrittene Interaktionen, richten Proxys ein und beheben die Fehler, an denen die meisten Neulinge scheitern.




