2012-06-15 59 views
0

我使用要求(由丹尼爾·羅斯曼爲勸)上發佈一個WebForm:發佈webform後,如何從結果頁面獲取值?

url = "http://mascot.proteomics.dundee.ac.uk/cgi/search_form.pl?FORMVER=2&SEARCH=MIS" 
data = {'SEARCH':'MIS'} 
files = {'JG-C1-1A.mgf' : open('/homes/ndeklein/Cantrell/JG-C1-1.mgf','rb')} print 
當我打印 r.okr.request

我得到200 OK,所以POST工作。當我打印r.content時,我沒有得到結果頁面,而是提交表單的頁面的html。當我從數據中刪除{'SEARCH':'MIS'}r.content返回一個缺少搜索類型的html錯誤頁面,所以我知道如果在帖子中出現錯誤,我會得到一個錯誤。

那麼我怎樣才能得到結果頁?

回答

1

老實說,沒有理由使用httplib。這是一個低級別的界面,對於你想要做的事情來說是不必要的複雜。至少,使用urllib2,它將遵循任何重定向。但可能你最好的選擇是使用third-party requests module,這使得這一切變得更容易。

+0

我可以找到上傳多部分/表單數據文件的所有問題都使用http://code.activestate.com/recipes/146306/fa作爲答案,但使用httplib。你知道在哪裏可以使用urllib找到多語言/表單數據嗎?我正在使用python 2.6 AFAIK請求是針對python 3(他們刪除了python 2.5支持) –

+0

呃,刪除Python 2.5並不意味着它在2.6中不起作用,並且[很明顯的是](http:// docs .python-requests.org/EN /最新/社區/ FAQ /#中的python-3支持)。和[這裏](http://docs.python-requests.org/en/latest/user/quickstart/#post-a-multipart-encoded-file)多部分文件的文檔。 –

+0

你是對的,謝謝你。但我仍然有同樣的問題,我沒有得到結果頁面。 –

相關問題