使用Mechanize(PubChem)提交表单

时间:2015-02-23 02:39:41

标签: python mechanize

我正在为PubChem写一个化学性质刮刀。我是机械化的新手,而且只是一般的编程,所以我不知道如何提交这个网站的表格:https://pubchem.ncbi.nlm.nih.gov/

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')

但这似乎也不起作用。我希望在哪里寻找答案,或者提交此表单的替代方法方面有所帮助。

我会非常感激任何帮助。

1 个答案:

答案 0 :(得分:0)

您可以使用他们的服务PUG REST

从PubChem获取数据

一个简单的例子:

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”:{“Properties”:[{“CID”:297,“MolecularFormula”:“CH4”,“MolecularWeight”:16.04246,“CanonicalSMILES”:“C”,“InChI”:“InChI = 1S / CH4 / h1H4“,”IUPACName“:”甲烷“}]}}