Zurück zum Blog
Die Wissenschaft des Web-Scrapings
Gabriel CiociLast updated on Mar 31, 20268 min read

Wie JavaScript das Webdesign und das Web-Scraping beeinflusst

Wie JavaScript das Webdesign und das Web-Scraping beeinflusst

Erinnerst du dich noch an die „Wilder-Westen“-Phase des Internets, als jeder Webdesigner einfach sein eigenes Ding machte und die Seiten voller unpassender Farben, seltsamer UI-Entscheidungen und verzerrter Bilder waren? Was für eine Zeit!

Denken Sie außerdem daran zurück, wie diese Websites aussahen, wenn man sie über ein Smartphone oder Tablet aufrief. Die Navigation war nicht nur mühsam, sie war geradezu qualvoll.

Heute ist alles viel schlanker, basiert auf bewährten UI-Praktiken und ist für alle möglichen Bildschirmgrößen optimiert. Für diesen letzten Punkt verdanken wir es Javascript. Es ist die magische Sprache, die langweilige statische Seiten in schnelle, dynamische Erlebnisse verwandelt.

Kurz gesagt: JS eignet sich hervorragend, wenn man eine Website für Menschen optimiert. Bots hingegen kommen damit nicht so gut zurecht. Tatsächlich können einfache Web-Scraper ohne zusätzliche Funktionen kein HTML aus dynamischen Websites extrahieren. Keine Sorge, wir werden in diesem Artikel erläutern, warum das so ist und wie man das Problem lösen kann.

Eine Website braucht kein JavaScript. Man kommt auch nur mit HTML und CSS aus (oder sogar nur mit HTML, wenn man diesen 80er-Jahre-Look mag). Warum also machen sich die Leute die Mühe, JS hinzuzufügen? Nun, das wirst du gleich erfahren.

Warum verwenden Websites JavaScript?

Websites brauchen, ähnlich wie Häuser, ein solides Fundament. Die Grundlage dieses Fundaments ist HTML-Code. Durch das Hinzufügen von Tags und Elementen kannst du mit HTML Abschnitte, Überschriften, Links und so weiter erstellen und anordnen.

Es gibt nur sehr wenige Dinge, die man beim Erstellen einer Website mit HTML-Code nicht tun kann. Die Struktur eines HTML-Elements besteht aus einem öffnenden Tag, einem schließenden Tag und dem Inhalt dazwischen. Die Website zeigt die Informationen zwischen diesen beiden Tags entsprechend dem von ihnen vorgegebenen Format an.

Wenn du diesen einfachen Programmierstil lernst, kannst du deiner Website Überschriften, Links, Bilder und vieles mehr hinzufügen. Später kannst du dann mit CSS festlegen, welche Stile für jedes Element gelten.

CSS, kurz für Cascading Style Sheets, ist das i-Tüpfelchen für dein HTML. Wenn das HTML deine Struktur ist, dann ist CSS die Dekoration. Es ermöglicht dir, Farben, Schriftarten und Seitenlayouts auf der gesamten Seite anzupassen.

An dieser Stelle ist die Website einsatzbereit, wenn auch noch etwas flach. Sie kann zudem lange Ladezeiten haben, wenn du zu viele Daten auf zu wenige Seiten packst, oder die Navigation kann mühsam werden, wenn du den Inhalt auf zu viele Seiten verteilst.

Es ist also an der Zeit, das Erlebnis zu verbessern. JavaScript ist wie die Haustechnik: Es ist nicht entscheidend für die Struktur, macht aber einen riesigen Unterschied für diejenigen, die dort leben.

JavaScript kommt hauptsächlich in Webbrowsern und Webanwendungen zum Einsatz, ist aber derzeit eine der beliebtesten Sprachen und findet sich auch in Software, Servern und eingebetteten Hardware-Steuerungen.  

Hier sind einige Beispiele für die vielfältigen Einsatzmöglichkeiten:

  • Audio- und Videoplayer auf einer Website
  • Animationen
  • Dropdown-Menüs
  • Vergrößern und Verkleinern von Fotos
  • Durch Bilder auf einer Homepage gleiten
  • Erstellen von Bestätigungsfeldern

Verschiedene JavaScript-Frameworks wie AngularJS, ReactJS und Node.js sind im Web verfügbar. Durch die Verwendung dieser Frameworks können Sie den Zeitaufwand für die Erstellung von JS-basierten Websites und Apps reduzieren. JavaScript erleichtert Entwicklern die Erstellung von Apps in großem Maßstab. Es macht den gesamten Prozess der Erstellung groß angelegter Webanwendungen wesentlich zugänglicher.

In letzter Zeit sind viele Websites immer komplexer geworden, und es besteht ein plötzlicher Bedarf an Statefulness, bei der die Daten und Einstellungen des Clients gespeichert werden.

Was ist Statefulness im Webdesign?

Ein zustandsbehaftetes System ist insofern eine dynamische Komponente, als es wichtige Ereignisse als Zustandsdaten speichert und die Website entsprechend anpasst. Anhand eines Beispiels lässt sich dies leichter verstehen:

Bob ruft eine Website auf und registriert sich für ein Konto. Das System merkt sich seine Anmeldedaten und seinen Status für den nächsten Besuch der Website. Auf diese Weise muss Bob nicht zur Anmeldeseite gehen, da die Website ihn automatisch in den Mitgliederbereich weiterleitet.

Hinter den Kulissen erstellt ein Prozess ein Zwischensystem, das sich die Benutzerdaten merkt und den Benutzer automatisch zum richtigen Server oder zur richtigen Website weiterleitet.

Ein zustandsloses System hingegen merkt sich nichts und passt sich nicht an; es leitet den Nutzer auf die Anmeldeseite weiter und verlangt von ihm, seine Anmeldedaten jedes Mal neu einzugeben.

Dieses Prinzip lässt sich auf jeden Bereich des Webdesigns anwenden. Was auch immer Sie im Hauptteil ändern, der Status passt sich entsprechend an. Er steuert eine Vielzahl von Komponenten, die auf der Webseite angezeigt werden. Durch die Statusbeibehaltung kann die Website benutzerspezifische Informationen speichern, um ein personalisiertes Erlebnis (Zugriffsrechte) zu bieten, einschließlich Interaktionsverlauf und gespeicherter Einstellungen.

Beim Webdesign können Sie Informationen über Ihre Nutzer auf einem Server speichern, während der Browserspeicher Daten zwar speichern kann, diese jedoch nur bis zum Ende der Sitzung aufbewahrt.

Wie wirkt sich JavaScript auf das Web-Scraping aus?

JavaScript ist eine einfache Programmiersprache, die entwickelt wurde, um Websites im Browser dynamische Funktionen zu verleihen. Wenn eine Webseite geladen wird, wird ihr JS-Code von der JavaScript-Engine des Browsers ausgeführt und in maschinenlesbaren Code umgewandelt. Dies verkürzt zwar die Ladezeit, doch dynamisch geänderte Websites können das Web-Scraping behindern.

Einfache Scraper senden eine HTTP-Anfrage an die Website und speichern den Inhalt der Antwort. Unter normalen Umständen enthält diese Antwort den HTML-Code der Seite. Dynamische Websites geben jedoch JavaScript zurück, das keine wertvollen Daten enthält.

Zudem können viele Websites erkennen, ob der Besucher Javascript ausführen kann oder nicht. Da durchschnittliche Nutzer das Internet über einen Browser nutzen, können sie kein JS ausführen, was deutlich macht, dass sie keinen Browser verwenden. Daraus ist für die Websites ziemlich klar, dass ein Bot und kein Mensch sie besucht. Dies führt in der Regel dazu, dass die IP-Adresse des Bots gesperrt wird.

Kurz gesagt: Websites, die JS verwenden, können ohne die richtigen Tools nicht gescrapt werden, und Scraper, die kein JS ausführen können, sind viel leichter zu erkennen als solche, die dies können.

Wie gehen Web-Scraper mit JavaScript um?

Glücklicherweise gibt es eine Lösung: Headless-Browser. Diese Programme sind im Wesentlichen mit normalen Browsern identisch, verfügen über dieselben Funktionen, haben jedoch keine grafische Benutzeroberfläche. Um also über einen Headless-Browser zu navigieren, muss man stattdessen die Befehlszeile verwenden. Obwohl sie in erster Linie zum Testen von Apps und Websites verwendet werden, können sie auch JavaScript-Code ausführen, was sie zu idealen Add-ons für Web-Scraper macht.

Sobald der Headless-Browser den JS-Code verarbeitet hat, sendet die Website reguläres HTML – also genau die Daten, die Sie eigentlich benötigen.

Ein weiterer Vorteil von Headless-Browsern gegenüber anderen ist ihre Geschwindigkeit. Da sie sich nicht um die grafische Benutzeroberfläche, das Laden von JS oder CSS kümmern müssen, können sie Seiten viel schneller verarbeiten, was für das Web-Scraping hervorragend ist, da es den Bot nicht zu sehr verlangsamt.

Wenn Sie eine DIY-Lösung zur Datenextraktion suchen, gibt es zwei bevorzugte Programmiersprachen: Python und Node.js.

Python und Selenium

Wenn Sie sich für Python entscheiden, ist Selenium die erste Wahl für das JS-Rendering. Es ist eine zuverlässige Option für die Ausführung von JavaScript, die Interaktion mit Schaltflächen, das Scrollen und das Ausfüllen von Online-Formularen. Es wird hauptsächlich für Open-Source-Projekte im Bereich der Browser-Automatisierung verwendet. Das WebDriver-Protokoll steuert Browser wie Chrome und Firefox und kann sowohl remote als auch lokal ausgeführt werden.

Ursprünglich als Tool für browserübergreifende Tests entwickelt, hat sich Selenium schnell zu einer umfassenden Sammlung von Tools für die Webbrowser-Automatisierung entwickelt. Da viele Websites als Single-Page-Anwendungen aufgebaut sind, die selbst echten Nutzern CAPTCHAs aufdrängen, wird die Datenextraktion aufgrund der übermäßigen Wachsamkeit bei der Bot-Erkennung zunehmend zu einer gewaltigen Aufgabe.

Mit Selenium kann der Bot JavaScript-Code lesen und ausführen, sodass Sie Zugriff auf den HTML-Code haben, Formulare ausfüllen, um sich auf Websites anzumelden, auf einer Webseite nach unten scrollen und Klicks imitieren können.

Wenn Sie jedoch in Python scrapen, sollten Sie sich nicht nur auf Selenium beschränken. Sie können die BeautifulSoup-Bibliothek nutzen, die das Parsen von HTML und XML zum Kinderspiel macht, und anschließend Pandas einsetzen, um Ihre Daten zu extrahieren und in einer CSV-Datei zu speichern.

Node.js und Puppeteer

Puppeteer ist ein Node.js-Paket, mit dem du Headless Chrome oder Chromium betreiben und das DevTools-Protokoll integrieren kannst. Das Chrome DevTools-Team und eine fantastische Open-Source-Community kümmern sich darum.

Diese Lösung hilft dir dabei, einen Web-Scraper im Kontext der sich ständig ändernden Struktur einer Website zu verwalten. Die größte Hürde beim Scraping besteht darin, dass die Tools ständig aktualisiert werden müssen, um sich anzupassen und nicht durch die Server eingeschränkt zu werden.

Was kann Node.js? Es unterstützt JavaScript dabei, sowohl client- als auch serverseitig kostenlos ausgeführt zu werden, und ermöglicht gleichzeitig eine deutlich schnellere Erstellung von Netzwerkanwendungen.

Aber konzentrieren wir uns auf den Star des Web-Scrapings. Mit Puppeteer können Sie einen Webbrowser manuell steuern – von der Eingabe in Formularen über das Erstellen von Screenshots bis hin zur Automatisierung von UI-Tests.

Wenn Sie noch nie mit diesen Bibliotheken gearbeitet haben oder gerade erst mit Web-Scraping beginnen, verstehe ich, dass all dies einschüchternd wirken kann. Es gibt jedoch eine noch bequemere Lösung, die die ganze Arbeit für Sie erledigt: eine API.

Auch als Application Programming Interface bekannt, ermöglichen APIs den Nutzern, die Daten sofort abzurufen. Durch eine Anfrage an den API-Endpunkt liefert die App Ihnen die benötigten Daten. Obendrein liegen diese automatisch im JSON-Format vor.

Der größte Vorteil der Verwendung einer API ist, wie einfach es ist, sie mit Ihren anderen Softwareprodukten oder Skripten zu verbinden. Mit nur wenigen Zeilen Code können Sie die gescrapten Daten direkt an andere Apps weiterleiten, nachdem Sie Ihren individuellen API-Schlüssel erhalten und die Dokumentation gelesen haben.

Hier ist ein kurzer Überblick über alles, was WebScrapingAPI für Sie leistet:

  • Führt Javascript aus und greift auf den HTML-Code hinter dynamischen Webseiten zu
  • nutzt einen rotierenden Proxy-Pool mit Hunderttausenden von IP-Adressen aus Privathaushalten und Rechenzentren, um Ihre Aktivitäten zu verschleiern
  • Bietet Zugriff auf die Request-Header, damit Sie Ihre API-Aufrufe anpassen und sicherstellen können, dass der Scraper von normalen Besuchern nicht zu unterscheiden ist
  • Setzt Anti-Fingerprinting- und Anti-Captcha-Funktionen ein
  • Gibt die bereits geparsten Daten in einer JSON-Datei zurück.

Eine unkomplizierte Web-Scraping-Lösung

Von Webdesign, HTML, CSS und JavaScript bis hin zu Headless-Browsern – im World Wide Web dreht sich immer alles um frei zirkulierende Daten. Das ist der eigentliche Grund, warum das Internet überhaupt existiert. Gibt es einen besseren Weg, die Unmengen an Inhalten zu nutzen, als durch Datenerfassung? Denn wo wären Unternehmen, Entwickler und sogar Menschen im Allgemeinen heute ohne Zugang zu wertvollen Informationen?

Das ist es, was uns alle wirklich antreibt. Jetzt, da Sie verstehen, wie JavaScript das heutige Internet beeinflusst, sind Sie besser darauf vorbereitet, mit dem Scraping zu beginnen, und ich hoffe, dass Sie genau das tun. Wenn Sie wenig Zeit haben, sollten Sie unsere eigene Lösung, WebScrapingAPI, kostenlos ausprobieren. Die Testphase dauert zwei Wochen, und Sie erhalten Zugriff auf alle wesentlichen Funktionen wie JS-Rendering und Residential-Proxys.

Schauen Sie sich an, was die API leisten kann, und wenn Sie noch nicht überzeugt sind, wenden Sie sich an unseren unglaublich reaktionsschnellen Kundensupport, der Ihnen gerne weiterhilft.

Über den Autor
Gabriel Cioci, Full-Stack-Entwickler @ WebScrapingAPI
Gabriel CiociFull-Stack-Entwickler

Gabriel Cioci ist Full-Stack-Entwickler bei WebScrapingAPI und verantwortlich für die Entwicklung und Wartung der Websites, des Benutzerportals sowie der wichtigsten benutzerseitigen Komponenten der Plattform.

Los geht’s

Sind Sie bereit, Ihre Datenerfassung zu erweitern?

Schließen Sie sich den über 2.000 Unternehmen an, die WebScrapingAPI nutzen, um Webdaten im Unternehmensmaßstab ohne zusätzlichen Infrastrukturaufwand zu extrahieren.