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:
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?
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.
Was ist mit phantomjs ?
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. :)
Schauen Sie unter WebKitDriver nach. Das Projekt beinhaltet die kopflose Implementierung von WebKit.
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 .
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.