<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