Skip to main content
 首页 » 编程设计

python之使用 BeautifulSoup 帮助解析 pre> 标签

2025年05月04日9grandyang

我正在尝试使用 BeautifulSoup 和 python 解析来自网站的信息。 html 如下所示。我希望我的解析数据看起来像:

ID定义
赖氨酸生物合成 - Burkholderia psuedomallei 17
...类似位置的其余数据(在“pre”标签内和“a”标签外。

我该怎么做?

<pre>ID                   Definition 
    ---------------------------------------------------------------------------------------------------- 
<a href="/kegg-bin/show_pathway?bpm00300">bpm00300</a>             Lysine biosynthesis - Burkholderia pseudomallei 17  
<a href="/kegg-bin/show_pathway?bpm00330">bpm00330</a>             Arginine and proline metabolism - Burkholderia pse  
<a href="/kegg-bin/show_pathway?bpm01100">bpm01100</a>             Metabolic pathways - Burkholderia pseudomallei 171  
<a href="/kegg-bin/show_pathway?bpm01110">bpm01110</a>             Biosynthesis of secondary metabolites - Burkholder  
</pre> 

我试过:

y=soup.find('pre') #returns data between <pre> tags. Specific to KEGG 
    for a in y: 
        z =a.string 

这给了我:

 ID                   Definition 
---------------------------------------------------------------------------------------------------- 

感谢您的帮助!

请您参考如下方法:

BeautifulSoup() 及其搜索方法 return you a hierarchical parse-tree object ,不仅仅是一个字符串。遍历找到的节点上的 findChildren() 执行您想要的操作(并跳过标题行):

for a in soup.find('pre').findChildren(): 
    z = a.string