2012-03-14 4 views
2

Код:Как захватить значение атрибута с помощью 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

Чтобы получить <...>this</...> вы должны использовать contents поле, так что в вашем случае это будет:

print data.description.contents 

Для получения attributes доступ к ним, поскольку они были в словаре

print data.size['units'] 

И повторить все теги, используйте findAll, что вы уже знаете:

for node in data.findAll(True): 
    # do stuff on node 
Смежные вопросы