PythonのBeautifulSoup4でHTMLの要素の内容にアクセスする
BeautifulSoup4を使って、HTMLタグの内容にアクセスしてみます。
例として、下記のような典型的なaタグで試してみます。
<a id="test" href="https://example.com/">link text</a>
このタグをBeautifulSoupオブジェクトにして、タグの名前、テキスト、属性をそれぞれ取り出してみます。
# モジュールのインポート
>>> from bs4 import BeautifulSoup
# オブジェクトの生成
>>> soup = BeautifulSoup('<a id="test" href="https://example.com/">link text</a>', 'html.parser')
# aタグ全体
>>> soup.a
<a href="https://example.com/" id="test">link text</a>
# タグの名前を表示する
>>> soup.a.name
'a'
# タグの内容を取り出す
>>> soup.a.string
'link text'
>>> soup.a.text # マニュアルにはstringだけが書いてあります。
'link text'
# href属性の値を取り出す
>>> soup.a['href']
'https://example.com/'
# id属性の値を取り出す
>>> soup.a['id']
'test'
# 全ての属性と値を取り出す
>>> soup.a.attrs
{'id': 'test', 'href': 'https://example.com/'}
「soup.タグ名」で操作したいタグを指定して、コンテキストを取り出したい場合はstringを、属性を取り出したい場合はattrsにアクセスするか属性名をインデックスにしてアクセスする感じです。
公開日
広告
PythonとXMLカテゴリの投稿
- PythonでHTMLから特定のタグを抜き出してCSVにする
- PythonでHTMLを加工する
- PythonでXMLと文字列の変換
- PythonでXMLの構造を表示してみた
- PythonでXMLの読み込みと書き出し
- PythonのBeautifulSoup4でHTMLに要素を追加する
- PythonのBeautifulSoup4でHTMLの要素の内容にアクセスする
- PythonのBeautifulSoup4でHTMLの要素の内容を削除する
- PythonのBeautifulSoup4でHTMLの要素の囲いを外す
- PythonのBeautifulSoup4でHTMLの要素を削除する
- PythonのBeautifulSoup4でHTMLの要素を抜き出す
- PythonのBeautifulSoup4でHTMLの要素を新しい要素で囲う
- PythonのBeautifulSoup4でHTMLの要素を検索する
- Pythonのxmlで要素を列挙する
- PythonのxmlモジュールのElementTreeのルート要素を取得する
- PythonのxmlモジュールのElementからElementTreeを作る