スクレイピング 中級

88. タグの属性を取得する

属性の値を取り出す

これまではタグの中の文字(.text)を取得してきましたが、リンク先のURL(href属性)や画像のパス(src属性)のように、タグの「属性」に情報が入っていることもよくあります。属性の値はタグ.get('属性名')という書き方で取り出せます。

⚠️ 注意:タグ['属性名']という書き方もありますが、こちらはその属性が存在しないとKeyErrorになります。get()なら存在しなくてもNoneを返すだけなので、安全に書きたいときはget()がおすすめです。

サンプルコード

from bs4 import BeautifulSoup

html = '<a href="https://example.com">サンプルサイト</a>'
soup = BeautifulSoup(html, 'html.parser')

link = soup.find('a')
print(link.text)
print(link.get('href'))
link.textでリンクの表示テキストを、link.get('href')でリンク先のURLをそれぞれ取り出しています。この組み合わせは、ページ内のリンク一覧を集めたいときの定番です。

📝 練習問題

練習問題:'<img src="photo.jpg" alt="写真">'というHTMLから、imgタグのsrc属性とalt属性をそれぞれ表示してください。