wake-up-neo.com

Headless, skriptfähiges Firefox/Webkit unter Linux?

Ich möchte einige Webinteraktionen automatisieren, nämlich das regelmäßige Herunterladen von Dateien von einer sicheren Website. Dies beinhaltet im Wesentlichen die Eingabe meines Benutzernamens/Passworts und das Navigieren zur entsprechenden URL.

Ich habe einfache Skripte in Python ausprobiert, gefolgt von komplexeren Skripten. Nur um herauszufinden, dass diese bestimmte Website ein unangenehmes Javascript und einen Flash-basierten Mechanismus für die Anmeldung verwendet, sind meine Methoden unbrauchbar geworden.

Ich habe dann HTMLUnit ausprobiert, aber das scheint auch nicht zu funktionieren. Ich vermute, dass die Verwendung von Flash das Problem ist.

Ich möchte eigentlich nicht mehr darüber nachdenken, daher neige ich dazu, ein Skript für einen aktuellen Browser zu schreiben, um mich anzumelden und die benötigte Datei zu erhalten.

Voraussetzungen sind:

  • Laufen Sie auf einem Linux-Server (dh kein X läuft). Wenn ich wirklich X brauche, kann ich das schaffen, aber ich werde nicht glücklich sein.
  • Sei verlässlich. Ich möchte diese Sache beginnen und nie wieder darüber nachdenken.
  • Sei skriptfähig. Nichts zu raffiniertes, aber ich sollte in der Lage sein, dem Browser die verschiedenen Schritte und zu besuchenden Seiten mitzuteilen.

Gibt es gute Toolkits für einen kopflosen, skriptfähigen Browser ohne X? Haben Sie so etwas probiert und wenn ja, haben Sie Worte der Weisheit?

45
Parand

Ich habe eine verwandte Aufgabe mit dem eingebetteten Browser IE durchgeführt (obwohl es sich um eine GUI-Anwendung mit verborgener Browserkomponentenleiste handelte). Tatsächlich können Sie eine beliebige layout engine nehmen und die Ausgangslogik schneiden. Die Navigation sollte über feuerskriptartige Ereignisse erfolgen.

Sie können Crowbar verwenden. Es ist eine kopflose Version von Firefox (Gecko Engine). Es verwandelt den Browser in einen RESTful-Server, der Anforderungen annehmen kann ("Abruf-URL"). Es analysiert also HTML, stellt es als DOM dar und wartet eine definierte Verzögerung für alle durchgeführten Skripts. 

Es funktioniert unter Linux. Ich denke, Sie können es leicht mit JS und reichen XULrunner-Fähigkeiten für Ihr Ziel erweitern.

17
Dmitry

Was ist mit phantomjs

39
Phil

Haben Sie versucht, Selen ? Damit können Sie ein Nutzungsszenario mit einer Erweiterung für Firefox aufzeichnen, die später mit verschiedenen Methoden wiedergegeben werden kann.

Edit: Ich habe gerade gemerkt, dass dies eine sehr späte Antwort war. :)

9
nici

Schauen Sie unter WebKitDriver nach. Das Projekt beinhaltet die kopflose Implementierung von WebKit.

6
michael

Ich weiß nicht, wie man Flash-Interaktionen durchführt (und bin auch interessiert), aber für HTML/Javascript kann man Chickenfoot verwenden. 

Um einen headless + scriptfähigen Browser unter Linux zu installieren, können Sie die Qt-Webkit-Bibliothek verwenden. Hier ist ein Beispiel use .

1
hoju

Um dies zu erreichen, schreibe ich einfach Chrome-Erweiterungen, die auf CouchDBs posten ( example und its Futon ). Fügen Sie den Berechtigungen im Manifest die Couch hinzu, um domänenübergreifende XHRs zuzulassen.

(Ich bin in diesem Thread auf der Suche nach einer kopflosen Alternative zu dem, was ich getan habe, angekommen; nachdem ich diesen Thread gefunden habe, werde ich irgendwann Crowbar ausprobieren.)

Angesichts der bizarren Eigenschaften dieser Website kann ich mich nicht fragen, ob Sie eine Sicherheitslücke ausnutzen können, um Flash und Javascript zu umgehen.

0
Thomas Levine