我有一个UniProt ID列表,想使用BeautifulSoup删除包含结构信息的表。我使用的URL如下:https://www.uniprot.org/uniprot/P03496,登录号为“P03496”。
HTML代码片段如下所示。
<div class="main-aside">
<div class="content entry_view_content up_entry swissprot">
<div class="section" id="structure">
<protvista-uniprot-structure accession="P03468">
<div class="protvista-uniprot-structure">
<div class="class=" protvista-uniprot-structure__table">
<protvista-datatable class="feature">
<table>...</table>
</protvista-datatable>
</div>
</div>
</protvista-uniprot-structure>
</div>
</div>
</div>
我需要的信息包含在<table>...</table>
标记之间。
我尽力了
from bs4 import BeautifulSoup
import requests
url='https://www.uniprot.org/uniprot/P03468'
r=requests.get(url)
url=r.content
soup = BeautifulSoup(url,'html.parser')
soup.find("protvista-datatable", {"class": "feature"})
print(soup)
2条答案
按热度按时间z4iuyo4d1#
内容是动态提供的,如果你深入了解,它并不包含在你的
soup
中。它不需要BeautifulSoup
来获取数据,你的tabel是基于,只需使用他们的API / rest接口来获取JSON形式的结构化数据:输出
4uqofj5v2#
Michael米尔顿(@multimeric)有一个Python包Unipressed,它允许编程访问查询UniProt的新REST API。
示例:
输出
更多使用Unipressed访问Uniprot新的REST API的例子,请参见我对Biostar的帖子“使用REST API访问UNIPROT”的回复。请参见使用Unipressed进行IDMaphere和here,在底部,我包括将“from - to”结果列表转换为Pandas Dataframe 。