<Python, BeautifulSoup> HTML属性をゲット

BeautifulSoupで、HTML属性attributeをげっちゅうする技。

こんなhtmlテキストがあったとして、、

In [1]: from bs4 import BeautifulSoup

In [2]: html = '''
   ...: <d>
   ...:   <name>Hage</name>
   ...:   <qty>10</qty>
   ...: </d>
   ...: <d>
   ...:   <name>Hige</name>
   ...:   <qty>20</qty>
   ...: </d>
   ...: <d>
   ...:   <name>Hoge</name>
   ...:   <qty>12</qty>
   ...: </d>
   ...: <d>
   ...:   <name>Haga</name>
   ...:   <qty hage='pikapika' hige='boubou'>15</qty>
   ...: </d>
   ...: '''

.findAll()<d>タグを抽出。

In [3]: BeautifulSoup(html, 'lxml').findAll('d')
Out[3]: 
[<d>
 <name>Hage</name>
 <qty>10</qty>
 </d>, <d>
 <name>Hige</name>
 <qty>20</qty>
 </d>, <d>
 <name>Hoge</name>
 <qty>12</qty>
 </d>, <d>
 <name>Haga</name>
 <qty hage="pikapika" hige="boubou">15</qty>
 </d>]

返しのリストの3番目を選択し、

In [4]: BeautifulSoup(html, 'lxml').findAll('d')[3]
Out[4]: 
<d>
<name>Haga</name>
<qty hage="pikapika" hige="boubou">15</qty>
</d>

で、もって、さらに<qty>タグを抽出し、

In [6]: BeautifulSoup(html, 'lxml').findAll('d')[3].findAll('qty')
Out[6]: [<qty hage="pikapika" hige="boubou">15</qty>]

で、.attrsでゲット。

In [8]: BeautifulSoup(html, 'lxml').findAll('d')[3].findAll('qty')[0].attrs
Out[8]: {'hage': 'pikapika', 'hige': 'boubou'}

In [9]: BeautifulSoup(html, 'lxml').findAll('d')[3].findAll('qty')[0].attrs['hage']
Out[9]: 'pikapika'

マニュアル。(日本語版)
kondou.com - Beautiful Soup 4.2.0 Doc. 日本語訳 (2013-11-19最終更新)

英語。
Beautiful Soup Documentation — Beautiful Soup 4.4.0 documentation