使用 Mechanize (PubChem) 提交表格
Submitting a Form using Mechanize (PubChem)
我正在尝试为 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')
但这似乎也不起作用。我希望获得有关在哪里寻找答案或提交此表单的替代方法的帮助。
如有任何帮助,我将不胜感激。
您可以使用 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": { "Properties": [ { "CID": 297, "MolecularFormula": "CH4", "MolecularWeight": 16.04246, "CanonicalSMILES": "C", "InChI": "InChI=1S/CH4/h1H4", "IUPACName": "methane" } ] } }
我正在尝试为 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')
但这似乎也不起作用。我希望获得有关在哪里寻找答案或提交此表单的替代方法的帮助。
如有任何帮助,我将不胜感激。
您可以使用 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": { "Properties": [ { "CID": 297, "MolecularFormula": "CH4", "MolecularWeight": 16.04246, "CanonicalSMILES": "C", "InChI": "InChI=1S/CH4/h1H4", "IUPACName": "methane" } ] } }