Kurz gesagt: Zum Web-Scraping von JavaScript-Tabellen in Python ist selten ein Headless-Browser erforderlich. Öffne die DevTools, suche den JSON-Endpunkt, der das Raster befüllt, spiele ihn mit requests, paginiere es und greife nur dann auf Playwright zurück, wenn der Netzwerkaufruf signiert, verschlüsselt oder anderweitig versiegelt ist.Du hast den naheliegenden Code geschrieben. requests.get(url), übergeben Sie den HTML-Code an BeautifulSoup, extrahieren Sie die Zeilen aus dem <table>. Das Skript läuft, die Datei landet auf der Festplatte und die CSV-Datei ist leer. Willkommen beim Web-Scraping von JavaScript-Tabellen, bei dem die Zeilen, die du in deinem Browser siehst, in dem Dokument, das der Server tatsächlich zurückgegeben hat, gar nicht existieren.
Statische Tabellen liefern die Daten im ursprünglichen HTML. Dynamische Tabellen (auch AJAX- oder JavaScript-gerenderte Tabellen genannt) liefern eine fast leere Hülle; dann ruft ein Skript auf der Seite einen JSON-Endpunkt auf und fügt nach dem Laden Zeilen in das DOM ein. Wenn du dieses Skript nicht ausführst, siehst du diese Zeilen nicht. Einen vollständigen Browser zu starten, um dies zu beheben, ist eine schwerfällige Lösung für ein meist kleines Problem.
Dieser Leitfaden wählt den kürzeren Weg. Wir beginnen mit einer Entscheidungshilfe, damit du nicht mehr raten musst, ob du requests oder eine Browser-Engine nutzen soll, und gehen dann Schritt für Schritt durch, wie man den zugrunde liegenden JSON-Endpunkt in DevTools findet, ihn in Python mit Paginierung und Authentifizierung nachbildet, in saubere Zeilen parst und in CSV, JSON Lines oder SQLite exportiert. Playwright dient hier als echter Fallback für Websites, die den Netzwerkaufruf verbergen, nicht als Standardwerkzeug. Am Ende haben Sie ein Skript, das Sie im nächsten Quartal erneut ausführen können, ohne es von Grund auf neu schreiben zu müssen.




