Pythonの外部ライブラリであるBeautifulSoup4を使うと、HTMLやXMLを簡単にパースできます。特定の要素のテキスト内容を取得したい場合などがあります。そういう時はBeautifulSoup4でタグをfindして、そのfindしたタグのテキストを得ます。
タグのテキストを取得する
タグのテキストは get_text()
で取得できます。以下にその例を示します。
from bs4 import BeautifulSoup
html = '<p>Hello, </p><p>World!</p>'
soup = BeautifulSoup(html, 'html.parser')
print(soup.get_text())
このコードを実行すると、Hello, World!
という結果が得られます。
findでテキストを検索する
find()
の引数に text
があります。これに文字列を指定すると、その文字列の内容を持ったタグを取得できます。以下にその例を示します。
from bs4 import BeautifulSoup
html = '<p>Hello, </p><p>World!</p>'
soup = BeautifulSoup(html, 'html.parser')
found = soup.find(text='World!')
print(type(found))
print(found)
このコードを実行すると、<class 'bs4.element.NavigableString'>
とWorld!
という結果が得られます。
以上、PythonとBeautifulSoupを使った文字列検索について解説しました。この方法を覚えておくと、スクレイピングなどがはかどります。