2015-02-23 83 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