2011-04-07 68 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