首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用python从获取的HTML代码中提取特定信息

使用python从获取的HTML代码中提取特定信息
EN

Stack Overflow用户
提问于 2016-04-16 07:22:48
回答 1查看 42关注 0票数 1

我是蟒蛇方面的新手。我需要一些生物信息学项目的建议。这是关于把某些酶的It转换成其他的。

我已经做了哪些工作,是从土卫五数据库中获取did列表的html代码:

代码语言:javascript
复制
 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中的以下部分:

代码语言:javascript
复制
        <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(+) &lt;?&gt; 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(+) =&gt; 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 =&gt; myo-inositol + NAD(+)</span>
            </div>
        </p>

我想遍历代码,直到达到类“图标-箭头-右边”(这个表达式在HTML中是唯一的)。然后,我想从上面的行中提取"RHEA:XXXXXX“的信息。所以在这个例子中,我想以16950结尾。

有什么简单的方法吗?我已经对HTMLparser进行了实验,但无法让它工作,因为它需要查找某个类,然后从上面的行中给出ID。

非常感谢您提前!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-16 07:29:50

您可以使用像BeautifulSoup这样的HTML解析器来完成以下操作:

代码语言:javascript
复制
>>> 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(+) &lt;?&gt; 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(+) =&gt; 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 =&gt; 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'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36661357

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档