2015-02-23 86 views
0

我正在为PubChem编写化学性质的刮板。我很机械化,只是一般的编程,所以我被卡在如何提交此网站的表格:https://pubchem.ncbi.nlm.nih.gov/使用机械化提交表单(PubChem)

br.submit()产生一个错误(它只是说httperror_seek_wrapper),我不确定如何从那里继续。我试着将提交的按钮设置为以下内容:

def pubchem(): 
    br = Browser() 
    br.open("https://pubchem.ncbi.nlm.nih.gov/") 
    br.select_form(nr=0) 
    form = br.form 
    form['term'] = "74-82-8" 
    form.click(id='go') 

但是这似乎也不起作用。我希望能找到答案的地方提供帮助,或者提交此表单的其他方法。

我会非常感激任何帮助。

回答

0

您可以从PubChem数据库获取数据,他们的服务PUG REST

一个简单的例子:

import urllib2 
import json 

def get(url): 
    req = urllib2.Request(url) 
    response=urllib2.urlopen(req) 
    return response.read() 

pugrest = 'http://pubchem.ncbi.nlm.nih.gov/rest/pug/compound/name/' 
cmpd = 'methane' 
prop ='/property/MolecularFormula,MolecularWeight,CanonicalSMILES,InChI,IUPACNam/JSON' 

data = get(pugrest+cmpd+prop) 
print data 

这会给你此JSON:

{ “PropertyTable”:{ “属性”: [{“CID”:297,“MolecularFormula”:“CH4”,“MolecularWeight”:16.04246,“CanonicalSMILES”:“C”,“InChI”:“InChI = 1S/CH4/h1H4”,“IUPACName” “}}}}

+0

哈哈哇,没有真正的ize他们有这项服务。谢谢! – nthompso 2015-02-24 03:30:20