2009-08-18 9 views
7

J'ai besoin de quelque chose comme iMacros pour Python. Ce serait génial d'avoir quelque chose comme ça:Macro WWW Python

browse_to('www.google.com') 
type_in_input('search', 'query') 
click_button('search') 
list = get_all('<p>') 

Savez-vous quelque chose comme ça?

Merci d'avance, Etam.

Répondre

7

Presque un accomplissement direct des voeux dans la question - twill. Le twill est un langage simple qui permet aux utilisateurs de naviguer sur le Web à partir d'une interface de ligne de commande.

Avec Twill, vous pouvez naviguer à travers les sites Web qui utilisent des formulaires, des cookies et la plupart des fonctionnalités Web standard. Twill prend en charge les tests Web automatisés et possède une interface Python simple.

(pyparsing, mechanize et BeautifulSoup sont inclus avec twill pour plus de commodité.)

A Python API exemple:

from twill.commands import go, showforms, formclear, fv, submit 

go('http://issola.caltech.edu/~t/qwsgi/qwsgi-demo.cgi/') 
go('./widgets') 
showforms() 

formclear('1') 
fv("1", "name", "test") 
fv("1", "password", "testpass") 
fv("1", "confirm", "yes") 
showforms() 

submit('0') 
6

Utilisez mechanize. Autre que d'exécuter JavaScript dans une page, c'est plutôt bien.

0

Une autre chose à considérer est l'écriture de votre propre script. Ce n'est pas trop dur une fois que vous avez compris, et sans invoquer une demi-douzaine de grandes bibliothèques, il pourrait même être plus rapide (mais je ne suis pas sûr). J'utilise un débogueur web appelé "Charles" pour surfer sur les sites que je veux gratter. Il enregistre toutes les communications http sortantes/entrantes, et j'utilise les enregistrements pour désosser les chaînes de requête. Les manipuler en python permet un raclage assez rapide et flexible.

Questions connexes