Alternativen zu Selenium Webdriver [geschlossen]

8

Ich benutze den Selenium-Webdriver für C # und Python, um Datenelemente von Websites zu erhalten, aber die Geschwindigkeit des Web-Scraping ist schrecklich langsam. Scrapping 35000 Datentabellen dauerte ungefähr 1,5 Tage. Mit dem Selenium-Webdriver kann ich Javascript ausführen, um ein Java-Element zu erhalten. Gibt es eine Bibliothek, die nicht so etwas wie einen Webdriver benötigt, um Javascript auf einer Webseite auszuführen, um Elemente abzurufen und auch auf Elemente zu klicken? Oder gibt es eine schnellere Alternative zu Selen?

    
Robert Smit 16.04.2015, 09:47
quelle

4 Antworten

4

Ich empfehle Ihnen, TestCafe zu verwenden.

TestCafe ist ein kostenloses Open-Source-Framework für Web-Funktionstests (e2e-Test). TestCafe basiert auf Node.js und verwendet WebDriver überhaupt nicht.

TestCafe-gestützte Tests werden auf der Serverseite ausgeführt. Um DOM-Elemente zu erhalten, bietet TestCafe ein leistungsstarkes flexibles System von Selektoren. TestCafe kann JavaScript auf getesteten Webseiten mit der ClientFunction-Funktion ausführen (siehe unsere Dokumentation).

TestCafe-Tests sind wirklich sehr schnell, Überzeugen Sie sich selbst . Aber der Hochgeschwindigkeits-Testlauf beeinträchtigt die Stabilität nicht, dank eines integrierten Smart-Wait-Systems.

Die Installation von TestCafe ist sehr einfach:

1) Überprüfen Sie, ob Sie Node.js auf Ihrem PC haben (oder installieren).

2) Um TestCafe zu installieren, öffnen Sie cmd und geben Sie ein:

%Vor%

Schreibtest ist keine Raketenwissenschaft. Hier ist ein kurzer Start: 1) Kopieren Sie den folgenden Code in Ihren Texteditor und speichern Sie ihn als "test.js"

%Vor%

2) Führen Sie den Test in Ihrem Browser aus (z. B. chrome), indem Sie den folgenden Befehl in cmd eingeben:

%Vor%

3) Holen Sie sich das beschreibende Ergebnis in der Konsolenausgabe.

Mit TestCafe können Sie verschiedene Browser testen: lokal, remote (auf Geräten, sei es ein Browser für Raspberry Pi oder Safari für iOS), Cloud (z. B. Sauce Labs) oder kopflos (z. B. Nightmare). Dies bedeutet, dass Sie TestCafe problemlos mit Ihrer Continious Integration-Infrastruktur verwenden können.

    
Helen Dikareva 13.12.2016 11:47
quelle
2

Ich empfehle Selenium + PhantomJSDriver (Ghostdriver), das für GUI-less Browser-Automatisierung verwendet wird. Mit diesem können Sie leicht durch die Seiten navigieren, Elemente auswählen (Sie können die Flüge auswählen), Formulare absenden und auch etwas scrapen. Javascript wird ebenfalls unterstützt.

Sie können die Selenium-Dokumentation hier durchsehen. Sie müssen die Datei phantomjs.exe herunterladen.

Ein gutes Tutorial für PhantomJSDriver finden Sie in hier

Konfig von PhantomJSDriver (aus dem Tutorial):

%Vor%

Andere Option (dies erfordert keinen WebDriver): PhantomJS

PhantomJS ist ein Headless-WebKit, das mit einer JavaScript-API skriptfähig ist. Es hat schnelle und native Unterstützung für verschiedene Web-Standards: DOM-Handhabung, CSS-Selektor, JSON, Canvas und SVG.

Dies ist GUI-weniger und hat auch die Fähigkeit, Screenshots zu machen.

Beispiel (aus hier ):

%Vor%

PS: Ich würde JSoup für Web-Scraping vorschlagen, aber es unterstützt kein Javascript. PhantomJSDriver hat etwas namens Ghost.py für Python.

    
LittlePanda 16.04.2015 09:52
quelle
2

Was ist mit LeanFT? Es handelt sich um ein neues HP Produkt, das mit C # und Java funktioniert, und Benutzer sagen, dass sie auf LeanFT umgestiegen sind "weil Selen konnte nicht alle Anwendungen verarbeiten."

    
Sarah Sukin 20.07.2015 09:43
quelle
0

Wenn Sie den HTMLUnit-Webdriver verwenden, entfällt der Aufwand für die Ausführung eines Browsers, sodass der Code viel schneller ausgeführt werden kann. Sie können dies sogar noch beschleunigen, indem Sie ein Framework / Toolset komplett aufgeben und Seiten direkt abfragen und für das analysieren, was Sie brauchen. Dies macht jedoch Wartung und Aktualisierung zu einem Problem.

    
not-bob 14.07.2017 14:48
quelle

Tags und Links