TPTブログ

テックポート株式会社のブログです。 技術情報や製品・サービス情報、 また未経験社員がデータサイエンティストを 目指す奮闘記など、更新していきます。

▲本日の関数==get_text()==

f:id:TBT_matsu:20200402152259p:plain

本日の関数: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
##結果
'テービーテックのデータサイエンス'

余分なものを引っ付けずにテキストを取り出すことができます。

もっと詳しく!

ドキュメントへ!!