2016-11-27 4 views
1

J'essaie de créer un script python qui utilise mechanize pour soumettre des données à un formulaire Web.Connexion avec python mechanize

C'est ce que j'ai jusqu'à présent

import mechanize 


username = <my_username> 
password = <my_password> 
url = <my_url> 


print "opening browser" 
br = mechanize.Browser() 
print "opening url...please wait" 
br.open(url) 
print br.title() 
print "selecting form" 
br.select_form(name='Login') 
br['UserID'] = username 
br['PassPhrase'] = password 
print "submitting form" 
br.submit() 

Je suis bloqué sur ce qu'il faut faire maintenant. Est-ce que br contient maintenant la page Web suivante qui apparaît après la soumission du formulaire? Est-il possible d'imprimer le html dans br pour vérifier quelle page est dedans? (Je ne peux pas utiliser print br.title() parce que les deux pages ont le même titre)

Répondre

1

Essayez ceci à la fin:

response = br.submit() 
pageSource=response.read() 

devrait vous donner le texte source la source HTML de la page post-connexion.

+0

Ok, maintenant je dois soumettre des formulaires à la page suivante. puis-je appeler 'br.select_form' à nouveau ou dois-je appeler' br.set_response (response) '? –

+0

Je n'ai pas mécanisé sur mon périphérique actuel, mais essayez simplement d'utiliser 'select_form'. Si la mémoire me sert bien, ça devrait marcher – Rojan