2011-02-12 47 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