Wie funktioniert die JS-Rendering-API?
Wenn Sie eine Website besuchen, erscheint ein Großteil der interessanten Informationen oft nicht sofort, sondern erst etwas später. Der Grund: Viele Websites laden ihre Inhalte heute per JavaScript nach. Vereinfacht gesagt, zeigt Ihnen die Seite zunächst einen leeren Kasten und füllt ihn dann vor Ihren Augen mit allerlei Inhalten.
Wenn Sie versuchen, Informationen von einer solchen Website auf dem üblichen Weg abzurufen, zum Beispiel mit einem speziellen Parser, sehen Sie nur diesen leeren Kasten. Das ist die Grundstruktur der Seite, aber ohne das Wichtigste: den Inhalt.
Hier kommt die JS-Rendering-API ins Spiel. Genau dieses Werkzeug sieht Websites so, wie ein normaler Nutzer sie im Browser sieht. Es ruft die Seite auf, wartet, bis alle Skripte ausgeführt und alle Inhalte geladen sind, und erst dann erstellt es eine Momentaufnahme der fertigen Seite und liefert sie Ihnen als HTML-Code.
Die JS-Rendering-API fungiert als Vermittler zwischen der Website und Ihrem Programm zur Datenerfassung. Sie übernimmt die gesamte Arbeit des Renderns, sodass Sie auf alle Inhalte zugreifen können, auch wenn diese dynamisch geladen werden. So können Sie JavaScript-Websites scrapen, die sich mit herkömmlichen Methoden nicht verarbeiten lassen.
Solche Lösungen sind für das Scraping dynamischer Websites besonders wichtig, wenn Sie Daten von Seiten erfassen müssen, deren Inhalte sich ständig ändern und per AJAX, API-Anfragen oder andere raffinierte Techniken geladen werden.
Wie funktioniert sie?
So arbeitet eine JavaScript-Rendering-API, hier am Beispiel einer Wettervorhersage-Seite:
- Zuerst senden Sie eine Anfrage an das Rendering-System und bitten darum, die Wetterseite anzuzeigen.
- Das Rendering-System öffnet diese Seite in einem speziellen Browser.
- Dieser Browser führt alle JavaScript-Skripte aus, die auf der Seite enthalten sind.
- Anschließend lädt er die dynamischen Inhalte, das heißt, er wartet, bis die genaueste Wettervorhersage erscheint.
- Zum Schluss liefert er den fertigen HTML-Code der Seite zurück, der bereits alle benötigten Informationen enthält.
So erhalten Sie genau die Version der Seite, die ein durchschnittlicher Nutzer sieht, samt aller geladenen Daten. Mit diesem Ansatz können Sie Daten auch von Websites extrahieren, deren Inhalte erst nach dem Laden der Seite erscheinen. Deshalb werden Browser-Automatisierungs-APIs und APIs für automatisiertes Browsen häufig zusammen mit Systemen zur Datenerfassung eingesetzt.
Warum ist das bei der Datenerfassung notwendig?
Viele moderne Websites basieren auf Frameworks wie React, Vue oder Angular. Auf solchen Seiten erscheint der Großteil der Informationen erst, nachdem JavaScript ausgeführt wurde.
Wenn Sie versuchen, JavaScript-Websites auf dem üblichen Weg zu scrapen, stellen Sie möglicherweise fest, dass der HTML-Code die benötigten Daten schlicht nicht enthält. Sie erhalten dann nur das Gerüst der Seite, während der eigentliche Inhalt im Hintergrund bleibt.
Die JS-Rendering-API löst dieses Problem. Der Dienst rendert die Seite zunächst vollständig und übergibt die Daten erst dann an Ihr Erfassungssystem.
Besonders wichtig ist das für:
- Marktplätze und Onlineshops: um Informationen zu Produkten, Preisen, Bewertungen usw. zu erfassen.
- Dienste mit dynamischen Katalogen: um Änderungen bei Sortiment und Preisen zu verfolgen.
- Plattformen mit Endlos-Scrolling: um alle Einträge einer Liste zu erfassen, nicht nur die auf dem Bildschirm sichtbaren.
- Websites mit dynamischer Filterung: um Daten passend zu den gewählten Filtern zu erfassen.
In solchen Fällen ist das Scraping dynamischer Websites ohne Rendering nahezu unmöglich.
Welche Vorteile bietet sie?
Der größte Vorteil ist, dass Sie mit modernen Websites in deren eigener Sprache arbeiten können. Das System versteht JavaScript, lädt Ressourcen und stellt die Seite korrekt dar.
Ein weiterer wichtiger Vorteil ist die Flexibilität. Dasselbe Werkzeug funktioniert mit unterschiedlichen Arten von Websites, unabhängig davon, welche Technologien sie verwenden.
Außerdem vereinfacht das Rendering die Datenerfassung. Ist die Seite bereits vollständig aufgebaut, lässt sie sich deutlich einfacher und zuverlässiger analysieren.
Wichtig ist auch, dass die JavaScript-Rendering-API Ihnen erlaubt, den Prozess zu skalieren. Sie müssen nicht viele lokale Browser starten, um Daten von einer großen Zahl von Websites zu erfassen. Alles läuft auf Seiten des Dienstes, und Sie müssen nur noch das fertige Ergebnis abholen.
Das entlastet Ihre Rechner und macht die Datenerfassung stabiler.
Für wen ist sie geeignet?
Werkzeuge mit JavaScript-Rendering-API kommen in den unterschiedlichsten Bereichen zum Einsatz, in denen automatisierter Zugriff auf Website-Daten gefragt ist.
Entwickler nutzen solche Lösungen zusammen mit Browser-Automatisierungs-APIs, um die Interaktion mit Webseiten zu automatisieren.
Analyseunternehmen setzen das Scraping dynamischer Websites ein, um Daten zu Produkten, Preisen und Inhalten zu erfassen.
Marketingteams werten Informationen von Websites der Wettbewerber aus und beobachten Änderungen in Online-Katalogen.
Auch in Projekten, die Informationen in großem Umfang von Websites mit viel JavaScript erfassen müssen, ist die JS-Rendering-API gefragt.
Kurz gesagt: Wenn Sie Daten von modernen Websites erfassen möchten, kommen Sie ohne solche Werkzeuge kaum aus.