Как получить значение атрибута с помощью BeautifulSoup? - PullRequest
2 голосов
/ 14 марта 2012

Код:

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 ]

3 голосов
/ 14 марта 2012

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

print data.description.contents

Чтобы получить атрибутов получить к ним доступ как к словарю

print data.size['units']

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

for node in data.findAll(True):
  # do stuff on node
1 голос
/ 14 марта 2012

BeautifulSoup может создать дерево.затем вы можете выполнить итерацию по этому дереву и получить атрибуты

, перейдите по следующей ссылке http://www.crummy.com/software/BeautifulSoup/bs3/documentation.html#TheattributesofTags

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...