本日の関数:get_text()
こんにちは。
テービーテックの村松です。
本日ご紹介する関数はBeautifulSoupライブラリの「get_text()」。
※※これまでご紹介した関数はこちら※※
どんな関数?
BeautifulSoupライブラリはHTMLやXMLから狙ったデータを抽出するために使用します。
get_text()はHTML内からタグのテキスト部分のみが必要な時に使います。
使ってみよう
input
HTMLを取得します。例として今回は本ブログのトップページを用意。
#データの準備 import requests #HTMLの取得に使用します。 from bs4 import BeautifulSoup res = requests.get('https://ds-blog.tbtech.co.jp/') soup = BeautifulSoup(res.text, 'html.parser') soup
##結果 ##長いので一部抜粋して表示します ~~~中略~~~ <meta content="max-image-preview:large" name="robots"/> <meta charset="utf-8"/> <meta content="IE=7; IE=9; IE=10; IE=11" http-equiv="X-UA-Compatible"/> <title>テービーテックのデータサイエンス</title> <link href="https://ds-blog.tbtech.co.jp/" rel="canonical"/> ~~~中略~~~
コード
まずは特定のタグのテキストのみを取り出してみましょう。
# title タグの文字列を取得 title_text = soup.find('title').get_text() print(title_text)
##結果
テービーテックのデータサイエンス
ちゃんと
<title>テービーテックのデータサイエンス</title>
から抜き取られていますね。
また、改行や空白文字を除外したテキストが欲しい時にも便利です。
#改行を含むHTMLを用意します。 html = '<div>テービーテックのデータサイエンス\n </div>' soup = BeautifulSoup(html, 'html.parser')
このままさっきの方法でテキストを抜き出すと、
text = soup.find('div').get_text() text ##結果 'テービーテックのデータサイエンス\n '
改行を意味する\nまで取得してしまいますが、
引数にstrip=Trueを指定することで
text = soup.find('div').get_text(strip=True) text ##結果 'テービーテックのデータサイエンス'
余分なものを引っ付けずにテキストを取り出すことができます。