Web-Scraping bezeichnet den Vorgang der Datenextraktion aus Websites. Sie können dies manuell mithilfe von Webbrowsern durchführen oder den Vorgang mit Bibliotheken wie Selenium und Puppeteer automatisieren.
Selenium ist ein Open-Source-Tool, mit dem Sie Webanwendungen automatisieren und die Funktionalität Ihrer Website testen können, ohne Code in Ihrem Browser schreiben zu müssen. Es funktioniert zudem mit anderen Programmiersprachen wie Java, Python, C# usw.
Puppeteer ist eine JavaScript-Bibliothek zur Automatisierung von Chrome-Browsertests auf Headless-Linux-Systemen. Puppeteer unterstützt Chrome und wurde unter Ubuntu 16.04 LTS, 18.04 LTS sowie Debian 9 Stretch/Buster/Siduction (64-Bit) getestet.
In diesem Artikel erfahren Sie, wie Sie Selenium WebDriver in Node.js zusammen mit Puppeteer einsetzen, um Anwendungen mithilfe des Chrome-Browsers zu automatisieren.
Was ist Puppeteer?
Puppeteer ist eine JavaScript-Bibliothek, mit der Sie den Browser mithilfe von puppeteer.js steuern können. Die Bibliothek bietet eine API zum Erstellen, Verwalten und zur Interaktion mit Webseiten, ohne auf Dienste von Drittanbietern angewiesen zu sein. Sie unterstützt zudem die Erfassung von Mausereignissen und Tastatureingaben, sodass Sie mit der Seite interagieren können.
Wie funktioniert Puppeteer?
Puppeteer ist eine Node.js-Bibliothek zur Steuerung von Chrome. Sie ermöglicht es Ihnen, den Browser mit JavaScript zu steuern und auf eine Weise mit ihm zu interagieren, die mit HTML, CSS und JavaScript allein nicht möglich ist.
Sie können damit Maus- und Tastaturereignisse simulieren, Screenshots aufnehmen, DOM-Elemente bearbeiten, HTTP-Anfragen senden usw. Puppeteer verfügt außerdem über eine API, die es Ihnen ermöglicht, Ihre Puppeteer-Skripte zu schreiben, ohne direkt auf eine der APIs zurückzugreifen. Weitere Informationen zur API finden Sie hier: https://github.com/puppeteerjs/puppeteer-api.
Puppeteer löst folgendes Problem: Wie kann ich einen Browser steuern, ohne JavaScript ausführen zu können? Mit Puppeteer können Sie Maus- und Tastaturereignisse simulieren, Screenshots aufnehmen, DOM-Elemente bearbeiten, HTTP-Anfragen senden und vieles mehr. Es ist zudem möglich, Ihre Puppeteer-Skripte zu schreiben, ohne direkt auf eine der APIs zurückzugreifen. Dies ist nützlich, wenn Sie eine eigene Chrome-Erweiterung entwickeln möchten, die auf ungewöhnliche Weise mit dem Browser interagiert.
Die Komplexität und der Automatisierungskontext ändern sich von Tag zu Tag, sodass ein einziges Tool möglicherweise nicht für alle Fälle die richtige Lösung darstellt. Puppeteer weist einige Einschränkungen auf. Es unterstützt ausschließlich den Chrome-Browser. An einer Version von Puppeteer für Firefox wird derzeit gearbeitet.
Welche Vorteile bietet der Einsatz von Puppeteer?
Puppeteer bietet eine einfache Möglichkeit, Skripte in Ihrem Browser auszuführen, ohne diese selbst schreiben zu müssen. Es ist unkompliziert, ressourcenschonend und erweiterbar. Sie können es mit jeder Programmiersprache oder jedem Framework (NodeJS, Python, Java) verwenden. Es verfügt über eine eigene API, sodass Sie nicht extra eine weitere API lernen müssen, nur um Web-Scraping zu betreiben.
Sie müssen nicht wissen, wie Selenium funktioniert, um Puppeteer zu nutzen, profitieren aber dennoch von all seinen Vorteilen: Automatisierung, Testbarkeit und Portabilität!
Welche Nachteile hat die Verwendung von Puppeteer?
Puppeteer ist ein noch sehr junges Framework. Es befindet sich noch in der Beta-Phase und unterstützt noch nicht alle Browser (es unterstützt lediglich Chrome, Firefox, Opera und Safari). Mit der Zeit wird Puppeteer jedoch in der Lage sein, weitere Browser zu unterstützen. Auch die API ist noch nicht so ausgereift wie die von Selenium, sodass Sie anfangs möglicherweise auf einige Schwierigkeiten stoßen werden; dies wird sich jedoch im Laufe der Zeit verbessern. Auf der offiziellen Website finden Sie zahlreiche Beispiele für die Verwendung von Puppeteer: puppeteerjs.com/docs/getting-started/.
Wie installiere ich Puppeteer?
Sie können Puppeteer entweder durch Herunterladen eines Pakets von der Website oder durch manuelle Installation installieren. Rufen Sie die Repository-Seite von Puppeteer auf und laden Sie die aktuellste Version für Ihr Betriebssystem herunter. Um das Programm auszuführen, muss NodeJS auf Ihrem Computer installiert sein. Wenn Sie nicht wissen, wo Sie anfangen sollen, klicken Sie hier: nodejs.org/en/download. Führen Sie den Befehl „npm install -g puppet“ aus. Dadurch werden alle erforderlichen Abhängigkeiten für die Ausführung von „puppetserver“ heruntergeladen. Öffnen Sie nun ein Terminalfenster in Ihrem Home-Verzeichnis und geben Sie „puppetserver“ ein.
Wenn alles gut läuft, sollten Sie etwa Folgendes sehen:
$ node server Starting server… done! http://localhost:4200 Connecting…done! http://localhost:4200 Disconnected / Connected http://localhost:4200 <– Start scraping now!
Um den Vorgang zu beenden, drücken Sie Strg+C und geben Sie anschließend „exit“ ein.
Was ist Selen?
Selenium ist ein leistungsstarkes Tool, mit dem Sie webbasierte Anwendungen automatisieren können. Es wird häufig auch als„Webdriver“ bezeichnet. Selenium gibt es bereits seit geraumer Zeit und es hat sich zu einem der beliebtesten Tools in der IT-Branche entwickelt.
Was bewirkt Selen?
Mit Selenium können Sie Ihre Websites automatisieren, indem Sie verschiedene Aktionen ausführen, wie beispielsweise das Anklicken von Schaltflächen, das Ausfüllen von Formularen oder sogar das Navigieren durch Seiten. Das Hauptziel dieser Software besteht darin, automatisierte Tests einfach und effizient zu gestalten, ohne dass Sie selbst Code schreiben müssen. Sie können diese Software über Ihren Browser (Chrome/Firefox) oder im Rahmen einer Programmiersprache wie Java, C# oder Python usw. nutzen. Nach der Installation auf Ihrem Computer müssen Sie den Selenium-Server herunterladen, der standardmäßig auf Port 4444 läuft. Öffnen Sie anschließend Chrome/Firefox und geben Sie „chrome://extensions“ in die Adressleiste ein. Dort sehen Sie eine Liste der verfügbaren Erweiterungen; wählen Sie„Erweiterungen verwalten“ aus und klicken Sie dann auf die Schaltfläche„Nicht verpackte Erweiterung laden“.
Mit Selenium können Sie Websites, mobile Anwendungen und Desktop-Anwendungen testen. Die Bedienung ist unkompliziert und ermöglicht es Ihnen, webbasierte Anwendungen ohne Programmierkenntnisse zu automatisieren. Außerdem können Sie mit der Selenium-IDE eigene Tests erstellen; diese verfügt über eine visuelle Benutzeroberfläche, die eine benutzerfreundliche Entwicklung von Tests ermöglicht.
Vorteile von Selen
- Es funktioniert in allen Webbrowsern (Chrome, Firefox, IE) und auf mobilen Geräten (Android). Selenium ist plattformübergreifend. Sie müssen lediglich eine IDE für die Plattform Ihrer Wahl installieren und können die API sofort nutzen. Sie müssen nicht für jede Plattform neue APIs oder unterschiedliche Sprachen erlernen – verwenden Sie einfach eine Sprache, die auf allen Plattformen läuft.
- Selenium unterstützt die meisten gängigen Programmiersprachen, darunter Java, C#, Python und viele andere. Wenn Sie etwas in JavaScript automatisieren möchten, können Sie NodeJS zusammen mit „selenium-nodejs“ verwenden.
- Selenium unterstützt verschiedene Frameworks wie Protractor, WebDriver usw. Das Beste an diesen Frameworks ist, dass sie eine praktische Abstraktionsschicht bieten, die die Arbeit vereinfacht, da man keinen reinen Browser-Automatisierungscode direkt im Browser selbst schreiben muss. Wenn wir beispielsweise möchten, dass unsere Tests gleichzeitig in mehreren Browsern ausgeführt werden, können wir dies mit Selenium-WebDriver und Selenium-WebDriver2 bewerkstelligen. Das bedeutet, dass wir keine Probleme haben werden, wenn wir Tests in mehreren Browsern gleichzeitig durchführen, da alles vom Framework selbst übernommen wird, anstatt in jedem Browser manuell benutzerdefinierten Code schreiben zu müssen (was unsere Testsuite wesentlich komplexer erscheinen lassen würde).
- Für Selenium stehen zahlreiche Plugins zur Verfügung, wie beispielsweise Google-Chrome-Erweiterungen, Firefox-Add-ons und so weiter. Was gibt es noch? Jede Menge Beispiele! Und zwar nicht nur aus Open-Source-Projekten, sondern auch aus kommerziellen Projekten wie Appium, Sauce Labs oder Watir. Wenn Sie also nach einer schnellen und einfachen Lösung suchen, probieren Sie diese doch einmal aus! Es sind großartige Tools! Sie unterstützen zudem asynchrones Testen, was bedeutet, dass Ihr Test – selbst wenn er länger dauert als erwartet – keine Auswirkungen auf andere Tests hat, die parallel laufen, ohne dass sich die jeweiligen Ausführungsabläufe gegenseitig blockieren (asynchroner Modus). Auf diese Weise können wir schnelle UI-Tests schreiben, ohne befürchten zu müssen, dass unsere Anwendung dadurch verlangsamt wird.
Markttrends bei Selenium und Puppeteer: Warum sollten Sie sich dafür interessieren?
Die Marktentwicklungen von Selenium und Puppeteer zeigen, dass die Nutzung in den letzten Jahren deutlich zugenommen hat, insbesondere seit der Veröffentlichung von Selenium 2 im Jahr 2014. Die Beliebtheit von Selenium hat seitdem weiter zugenommen, was bedeutet, dass sie auf absehbare Zeit voraussichtlich in diesem Tempo weiterwachsen wird.
Wie sieht die Zukunft des Web-Testens aus?
Die Open-Source-Community entwickelt weiterhin neue Technologien und verbessert bestehende, ohne dass ein Ende dieser Entwicklung in absehbarer Zeit in Sicht wäre. Solange wir weiterhin innovativ sind und neue Werkzeuge entwickeln, können wir mit weiteren Verbesserungen im Bereich der Web-Testtechnologien rechnen.
Tools zur Web-Automatisierung: Warum sollten Sie diese nutzen?
Wenn Ihre Teammitglieder an ihren Projekten arbeiten oder Unterstützung beim Testen ihres Codes mit automatisierten Tests benötigen, erleichtert ihnen der Zugriff auf ein Automatisierungstool wie WebDriver die Arbeit erheblich – im Vergleich dazu, jedes Mal manuelle Lösungen ausprobieren zu müssen, wenn sie etwas manuell testen möchten.
Wenn Sie über ein Web-Automatisierungstool wie WebDriver verfügen, können Sie damit Ihre Tests automatisieren und diese in verschiedenen Sprachen schreiben. Sie können es auch nutzen, um mit dem Browser zu interagieren und bestimmte Funktionen der Anwendung zu testen, die manuell nur schwer oder gar nicht durchführbar sind. Die Möglichkeiten sind grenzenlos!
Der Einsatz eines Automatisierungstools wird Ihnen das Leben erheblich erleichtern, da Sie damit automatisierte Tests für Ihren Code schreiben können, ohne sich Gedanken darüber machen zu müssen, wie die Dinge im Hintergrund funktionieren.
Selenium oder Puppeteer: Was eignet sich am besten für das Webscraping?
Der wesentliche Unterschied zwischen den beiden besteht darin, dass Puppeteer in Node.js ausgeführt wird, während Selenium im Browser läuft.
Sie können Puppeteer für das Web-Scraping und für API-Tests verwenden, allerdings wird es nicht so umfassend unterstützt wie Selenium. Außerdem verfügt es nicht über einen integrierten UI-Test-Runner, sodass Sie einen eigenen schreiben müssen, wenn Sie es mit einem Headless-Browser wie PhantomJS oder NightwatchJS nutzen möchten.
Selenium wird von Browsern besser unterstützt als Puppeteer, und sein UI-Test-Runner funktioniert mit den meisten gängigen Browsern (einschließlich Chrome) sofort nach der Installation. Allerdings fehlen bei Selenium im Vergleich zu Puppeteer noch einige Funktionen. Insbesondere fehlen die WebDriver-APIs für die Interaktion mit Elementen auf einer Seite – was bedeutet, dass es schwieriger ist, komplexe Interaktionen über mehrere Seiten, Domains oder Anwendungen hinweg (z. B. das Anklicken von Links) allein mit dieser Bibliothek zu automatisieren.
Die Stärke Ihres Unternehmens hängt direkt von der Verfügbarkeit Ihrer Proxys ab. Wechseln Sie zu statischen ISP-Proxys in Unternehmensqualität, um dedizierte Übertragungsraten und unerschütterliche Zuverlässigkeit zu gewährleisten. ODER setzen Sie rotierende Residential-Proxys ein und erzielen Sie eine Erfolgsquote beim Scraping von 99,9 %.
