TL;DR: Die Verwendung von JavaScript mit Scrapy erfordert nicht immer einen Browser. Überprüfen Sie zunächst die Rohantwort, die Netzwerkanfragen und den Status der eingebetteten Seite; fügen Sie „scrapy-playwright“ nur dann hinzu, wenn die Zieldaten tatsächlich von der Ausführung im Browser abhängen, und steuern Sie dann Wartezeiten, Interaktionen, Bereinigung und Parallelität gezielt.
Die Verwendung von JavaScript mit Scrapy bedeutet, die Ausführung im Browser für Seiten hinzuzufügen, bei denen die benötigten Daten erst nach der Ausführung von clientseitigem Code erscheinen. Das praktische Ziel besteht nicht darin, jede Seite zu rendern, sondern den kostengünstigsten und zuverlässigsten Weg zu den Daten zu identifizieren: rohes HTML, eine JSON-Anfrage, ein eingebettetes JavaScript-Objekt oder – nur wenn nötig – ein vom Browser erstelltes DOM.
Diese Unterscheidung ist wichtig, da der Downloader von Scrapy die Antwort des Servers empfängt, während Chrome oder Firefox anschließend möglicherweise zusätzliche Anfragen stellen und das Dokument verändern. Eine React-, Vue- oder Angular-Seite kann daher in den DevTools vollständig erscheinen, obwohl response.text sie kaum mehr als eine Anwendungshülle enthält.
Dieser Leitfaden beginnt mit einer „Browser-Last“-Diagnose und entwickelt anschließend einen fokussierten Scrapy-Playwright-Workflow für die Anfragen, die tatsächlich ausgeführt werden müssen. Außerdem erfahren Sie, wie Sie bedingungsbasierte Wartezeiten einsetzen, Klicks und den Sitzungsstatus handhaben, Rendering-Optionen vergleichen und dynamische Spider im Produktivbetrieb stabil halten. Das Ergebnis ist ein Workflow, der Scrapys effiziente HTTP-Pipeline wo immer möglich beibehält, ohne so zu tun, als könne jede moderne Website allein anhand statischer Markups gescrapt werden.




