2011-02-12 4 views
1

Une page Web a 2 champs de formulaireméthode Python simple POST

1:

<input type="text" maxlength="30" value="" name="poster" id="id_poster"> 

2:

<textarea name="content" cols="80" rows="20" id="id_content"></textarea> 

En outre, il dispose d'un bouton:

<input type="submit" value="Submit your own idea!"> 

Qu'est-ce que Je veux est, à travers python pour remplir les formes id_poster et id_conte NT et puis soumettre. Si possible, pour prendre la page Web après la soumission (pour prendre le résultat).

Merci à tous

+2

donc en double ... http://stackoverflow.com/questions/1082361/automatically-pressing-a-submit-button-using-python, http://stackoverflow.com/questions/393738/programmatic-form-submit. Juste dans une recherche de 10 secondes. – tokland

Répondre

4

Vous pouvez le faire comme ceci (extrait de this example):

import urllib 
import urllib2 

url = 'http://www.someserver.com/somepage.html' 
values = {'id_poster' : 'some_poster_id', 
      'id_content' : 'some_content'} 

data = urllib.urlencode(values) 
req = urllib2.Request(url, data) 
response = urllib2.urlopen(req) 
the_page = response.read() 
+0

Cela imprime rien! :(D: –

+3

'print the_page' – razpeitia

7

Personnellement, je préfère httplib2, vous devez l'installer. La librairie est beaucoup mieux que celle donnée par python out of the box.

from httplib2 import Http 
from urllib import urlencode 
h = Http() 
data = dict(id_poster="some_poster_id", id_content="some_content") 
resp, content = h.request("http://example.org/form-handler", "POST", urlencode(data)) 

Ensuite, vous pouvez vérifier la réponse avec le resp