web-dev-qa-db-fra.com

Navigateur sans tête pour Python (Prise en charge Javascript REQUISE!)

J'ai besoin d'un navigateur sans tête qui est assez facile à utiliser (je suis encore assez nouveau pour Python et la programmation en général) qui me permettra de naviguer vers une page, de me connecter à un formulaire qui nécessite Javascript , puis grattez la page Web résultante en recherchant des résultats correspondant à certains critères, en cochant les cases et en cliquant pour télécharger les fichiers. Tout cela nécessite Javascript.

J'entends qu'un navigateur sans tête est ce que je veux - les exigences/préférences sont que je puisse l'exécuter à partir de Python, et de préférence que le script résultant sera compilable par py2exe (j'écris ce programme pour d'autres utilisateurs).

Jusqu'à présent, Windmill semble pouvoir être ce que je veux, mais je ne suis pas sûr.

Toutes les idées appréciées!

52
Cecil Rodriguez

La réponse à cette question était Spynner

11
Cecil Rodriguez

J'utilise webkit comme navigateur sans tête dans Python via pyqt/pyside:
http://www.riverbankcomputing.co.uk/software/pyqt/download
http://developer.qt.nokia.com/wiki/Category:LanguageBindings::PySide::Downloads

J'aime particulièrement le webkit car il est simple à configurer. Pour Ubuntu, vous utilisez simplement: Sudo apt-get install python-qt4

Voici un exemple de script:
http://webscraping.com/blog/Scraping-JavaScript-webpages-with-webkit/

29
hoju

Je suis en train d'écrire un pilote Python pour Zombie.js, "un framework léger pour tester le code JavaScript côté client dans un environnement simulé".

Je suis actuellement au point mort sur une résolution d'un bogue dans Node.js (avant d'écrire plus de tests et plus de code), mais n'hésitez pas à garder un œil sur mon projet au fur et à mesure qu'il progresse:

https://github.com/ryanpetrello/python-zombie

9
RyanTheDev

Il n'y a pas encore trop de navigateurs sans tête qui prennent en charge Javascript.

Vous pouvez essayer Zombie.js ou Phantomjs . Ce ne sont pas Python, mais du Javascript simple et ceux-ci peuvent vraiment faire le travail.

5
Epeli

Essayez d'utiliser phantomjs, il a un excellent support javascript. Ensuite, vous pouvez l'exécuter en tant que sous-processus d'un script python

http://docs.python.org/library/subprocess.html

qui pourrait le contrôler.

3
shelman

Vous pouvez utiliser HTQL en combinaison avec le webscraper IRobotSoft. Vérifiez ici pour des exemples: http://htql.net/

1
seagulf