我是蟒蛇方面的新手。我需要一些生物信息学项目的建议。这是关于把某些酶的It转换成其他的。
我已经做了哪些工作,是从土卫五数据库中获取did列表的html代码:
53 url2 = "http://www.rhea-db.org/reaction?id=16952"
54 f_xml2 = open("xml_tempfile2.txt", "w")
55
56 fetch2 = pycurl.Curl()
57 fetch2.setopt(fetch2.URL, url2)
58 fetch2.setopt(fetch.WRITEDATA, f_xml2)
59 fetch2.perform()
60 fetch2.close因此,HTML代码被保存到一个临时的txt文件中(我知道,这可能不是最优雅的处理方法,但它对我有效)。
现在我感兴趣的是HTML中的以下部分:
<p>
<h3>Same participants, different directions</h3>
<div>
<a href="./reaction?id=16949"><span>RHEA:16949</span></a>
<span class="icon-question">myo-inositol + NAD(+) <?> scyllo-inosose + H(+) + NADH</span>
</div><div>
<a href="./reaction?id=16950"><span>RHEA:16950</span></a>
<span class="icon-arrow-right">myo-inositol + NAD(+) => scyllo-inosose + H(+) + NADH</span>
</div><div>
<a href="./reaction?id=16951"><span>RHEA:16951</span></a>
<span class="icon-arrow-left-1">scyllo-inosose + H(+) + NADH => myo-inositol + NAD(+)</span>
</div>
</p>我想遍历代码,直到达到类“图标-箭头-右边”(这个表达式在HTML中是唯一的)。然后,我想从上面的行中提取"RHEA:XXXXXX“的信息。所以在这个例子中,我想以16950结尾。
有什么简单的方法吗?我已经对HTMLparser进行了实验,但无法让它工作,因为它需要查找某个类,然后从上面的行中给出ID。
非常感谢您提前!
发布于 2016-04-16 07:29:50
您可以使用像BeautifulSoup这样的HTML解析器来完成以下操作:
>>> from bs4 import BeautifulSoup
>>> html = """ <p>
... <h3>Same participants, different directions</h3>
... <div>
... <a href="./reaction?id=16949"><span>RHEA:16949</span></a>
... <span class="icon-question">myo-inositol + NAD(+) <?> scyllo-inosose + H(+) + NADH</span>
... </div><div>
... <a href="./reaction?id=16950"><span>RHEA:16950</span></a>
... <span class="icon-arrow-right">myo-inositol + NAD(+) => scyllo-inosose + H(+) + NADH</span>
... </div><div>
... <a href="./reaction?id=16951"><span>RHEA:16951</span></a>
... <span class="icon-arrow-left-1">scyllo-inosose + H(+) + NADH => myo-inositol + NAD(+)</span>
... </div>
... </p>"""
>>> soup = BeautifulSoup(html, 'html.parser')
>>> soup.find('span', class_='icon-arrow-right').find_previous_sibling().get_text()
'RHEA:16950'https://stackoverflow.com/questions/36661357
复制相似问题