如何使用beautifulSoup获取属性值?

时间:2012-03-14 01:30:45

标签: python beautifulsoup

代码:

soup=BeautifulSoup(f.read())
data=soup.findAll('node',{'id':'memory'})
print data

输出

[<node id="memory" claimed="true" class="memory" handle="DMI:000E">
<description>
  System Memory
 </description>
<physid>
  e
 </physid>
<slot>
  System board or motherboard
 </slot>
<size units="bytes">
  3221225472
 </size>
<capacity units="bytes">
  3221225472
 </capacity>
</node>]

现在我如何获取属性值,如系统内存标签之间的数据等。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:3)

要获得<...>this</...>,您应该使用contents字段,因此在您的情况下,它将是:

print data.description.contents

attributes访问它们,因为它们是字典

print data.size['units']

要迭代所有标记,请使用您已知道的findAll

for node in data.findAll(True):
  # do stuff on node

答案 1 :(得分:1)

beautifulsoup可以创建一棵树。然后,您可以遍历该树并获取属性

查看以下链接 http://www.crummy.com/software/BeautifulSoup/bs3/documentation.html#TheattributesofTags