2011-04-07 63 views
1

我嘗試編寫腳本來搜索一個inchikey(例如:OBSSCZVQJAGPOE-KMKNQKDISA-N),以獲得從這個網站的化學結構: http://www.chemspider.com/inchi-resolver/Resolver.aspx的Python的urllib POST響應

從我的代碼看起來應該文檔工作,但它只是返回原來的搜索頁面。

感謝您的幫助,

import urllib 

inchi = 'OBSSCZVQJAGPOE-KMKNQKDISA-N' 

url = 'http://www.chemspider.com/inchi-resolver/Resolver.aspx' 

data = urllib.urlencode({'"ctl00$ContentPlaceHolder1$TextBox1"':inchi}) 

response = urllib.urlopen(url, data) 

print response.read() 

回答

3

您的代碼執行GET請求而不是POST請求。除此之外:該表單包含各種隱藏字段,其中有些奇怪的值也可能用於處理。

+3

他說什麼。另外,爲了避免你自己完成所有的工作,你可以使用Mechanize(http://wwwsearch.sourceforge.net/mechanize/)。 – 2011-04-07 19:45:49

+2

默認情況下,如果您將數據傳遞給'urlopen()',它將執行'POST'與'GET'。真正的問題是缺少隱藏的領域。 – jathanism 2011-04-07 20:25:32