.text, .get_text()によるテキストの取得

Beautiful Soupにおける「.text」および「.get_text()」は、HTML要素の内部テキストコンテンツを抽出するためのメソッド・プロパティです。以下にそれぞれの特徴と使い方を詳しく説明します。


1. .textプロパティ

概要

  • .textは、タグの中の全てのテキストを取得するためのプロパティです。

  • タグの内部の全テキストノードを再帰的に連結した文字列を返します。

使用例

python
from bs4 import BeautifulSoup html = "<p>Hello <b>world</b>!</p>" soup = BeautifulSoup(html, "html.parser") print(soup.p.text)

出力

nginx
Hello world!

特徴

  • タグの入れ子構造にかかわらず、すべてのテキストを連結して1つの文字列として取得できます。

  • 属性などは含まれません。


2. .get_text()メソッド

概要

  • .get_text().textとほぼ同様に内部テキストを取得するメソッドですが、追加の引数で動作を制御できる点でより柔軟です。

主な引数

  • separator='':複数のテキストノードの間に挿入する区切り文字(デフォルトは空文字)。

  • strip=False:前後の空白文字を削除するかどうか(Trueにすると削除)。

使用例

python
html = "<div><p>Item 1</p><p>Item 2</p></div>" soup = BeautifulSoup(html, "html.parser") print(soup.div.get_text(separator=", ", strip=True))

出力

mathematica
Item 1, Item 2

特徴

  • 区切り文字を指定して、テキストの間に任意の文字列を挿入できる。

  • strip=Trueを使うことで、テキストの前後に余計な空白が含まれないようにすることが可能。


.text.get_text()の違いまとめ

項目 .text .get_text()
呼び方 プロパティ メソッド
区切り文字指定 不可 separatorで可能
空白削除 不可 strip=Trueで可能
柔軟性

実用上の注意点

  • テキストだけを抜き出して自然言語処理やスクレイピング後の整形に使いたい場合は、.get_text(separator=" ", strip=True)の方が扱いやすいことが多いです。

  • .textは短く書けるので、単純にテキストを取りたいときには便利です。


ご希望であれば、.get_text()を用いた日本語HTML処理の具体例などもご紹介可能です。

ChatGPT4o 生成日:2025/06/19