我正在尝试使用 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
