Sans tête, scriptable Firefox / Webkit sur linux?

je cherche à automatiser certaines interactions web, notamment le téléchargement périodique de fichiers à partir d'un site Web sécurisé. Cela implique essentiellement d'entrer mon nom d'utilisateur / mot de passe et de naviguer à L'URL appropriée.

j'ai essayé des scripts simples en Python, suivis de scripts plus sophistiqués, pour découvrir que ce site Particulier utilise un javascript odieux et un mécanisme basé sur flash pour la connexion, rendant mes méthodes inutiles.

j'ai alors essayé HTMLUnit, mais cela ne semble pas vouloir travailler. Je pense que L'utilisation de Flash est le problème.

Je ne veux plus vraiment y penser, donc je penche pour le script d'un navigateur réel pour me connecter et récupérer le fichier dont j'ai besoin.

les exigences sont:

  • Exécuter sur serveur linux (ie. pas de X en cours d'exécution). Si J'ai vraiment besoin D'avoir X, je peux faire en sorte que ça arrive, mais je ne serai pas heureuse.
  • Être fiable. Je veux commencer ce truc et ne jamais y penser encore.
  • être scriptable. Rien de trop sophistiqué, mais je devrais être en mesure de dire au navigateur les différentes étapes à prendre et les pages à visiter.

y a-t-il de bonnes boîtes à outils pour un navigateur sans tête et sans X? Avez-vous essayé quelque chose comme cela, et si oui, avez-vous des paroles de sagesse?

45
demandé sur hippietrail 2010-01-15 20:20:26

7 réponses

j'ai fait la tâche connexe avec IE embedded browser (bien que ce soit l'application gui avec le panneau de composant de navigateur caché). En fait, vous pouvez prendre n'importe quel mise en page moteur et couper logique de sortie. La Navigation doit se faire via des évènements de type script de mise à feu.

Vous pouvez utiliser Pied-de-biche. C'est la version sans tête de firefox (moteur Gecko). Il transforme le navigateur en serveur RESTful qui accepte les requêtes ("fetch url"). Ainsi, il analyse html, le représenter comme DOM, attendre défini retard pour tous script exécuté.

Il fonctionne sur linux. Je suppose que vous pouvez facilement l'étendre pour votre but en utilisant JS et riches capacités XULrunner.

17
répondu Dmitry 2018-09-04 06:26:03

Qu'en est-il phantomjs?

39
répondu Phil 2011-02-24 11:56:45

Avez-vous essayé Sélénium? Il vous permettra d'enregistrer un scénario d'utilisation, en utilisant une extension pour Firefox, qui peut ensuite être rejoué en utilisant un certain nombre de méthodes différentes.

Edit: je viens de réaliser que c'était une réponse tardive. :)

9
répondu nici 2011-03-08 16:02:42

regardez WebKitDriver. Le projet inclut la mise en œuvre sans tête de WebKit.

6
répondu spektom 2011-05-16 05:56:58

Je ne sais pas comment faire des interactions flash (et je suis aussi intéressé), mais pour html / javascript vous pouvez utiliser Chickenfoot.

et pour obtenir un navigateur headless + scriptable fonctionnant sous Linux, vous pouvez utiliser le Qt webkit bibliothèque. Voici un exemple d'utilisation.

1
répondu hoju 2010-07-08 14:29:02

pour ce faire, je n'écris que des extensions Chrome qui postent sur CouchDBs (exemple et son Futon