2011-02-12 48 views
1

一个网页具有2个表单字段Python的简单的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> 

此外,它有一个按钮:

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

什么我想要的是,通过python填写表格id_poster和id_conte nt然后提交。如果可能,请在提交后采取网页(以获得结果)。

谢谢大家

+2

所以重复的反应... http://stackoverflow.com/questions/1082361/automatically-pressing-a-submit-button-using-python, http://stackoverflow.com/questions/393738/programmatic-form-submit。只需要10秒的搜索。 – tokland 2011-02-12 18:11:23

回答

4

你可以像下面这样做(来自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

这不会打印任何东西! :(D: – 2011-02-12 18:15:58

7

我个人更喜欢httplib2,你必须安装它。该库比由python开箱即用的库好得多。

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)) 

然后你可以检查与resp