スクレイピング 中級

87. タグのテキストを取得する

.textと.get_text()

ここまでのレッスンでも使ってきた.textは、タグに囲まれた部分の文字列だけを取り出すプロパティです。同じ役割を持つ.get_text()というメソッドもあり、こちらは区切り文字を指定できるなど、少しだけ細かい調整ができます。基本的にはどちらを使っても構いません。

💡 ヒント:タグの中にさらに別のタグが入れ子になっている場合でも、.textはその中のテキストをすべてまとめて取り出してくれます。

サンプルコード

from bs4 import BeautifulSoup

html = '<div><p>価格:<strong>500円</strong></p></div>'
soup = BeautifulSoup(html, 'html.parser')

p_tag = soup.find('p')
print(p_tag.text)
pタグの中にstrongタグが入れ子になっていますが、.textを使うとその中身も含めて「価格:500円」という1つの文字列としてまとめて取得できます。

📝 練習問題

練習問題:'<h2>今日は<em>晴れ</em>です</h2>'というHTMLから、h2タグのテキストを表示してください。