結論
BeautifulSoupの .get_text()
を使う。
サンプルプルコード
import requests
from bs4 import BeautifulSoup
target_url = 'https://example.com'
r = requests.get(target_url)
soup = BeautifulSoup(r.text, 'html5lib')
result = soup.find("h1").get_text()
print(result)
メモ
HTMLからタグを削除しようとして検索したがなかなかピンポイントな情報が得られなかったのでメモ。
タグの除却については↓のような古いやり方が結構ひっかかる。
from html.parser import HTMLParser
class MLStripper(HTMLParser):
def __init__(self):
self.reset()
self.strict = False
self.convert_charrefs= True
self.fed = []
def handle_data(self, d):
self.fed.append(d)
def get_data(self):
return ''.join(self.fed)
def strip_tags(html):
s = MLStripper()
s.feed(html)
return s.get_data()
class MLStripper(HTMLParser):
def __init__(self):
self.reset()
# stripしたテキストを保存するバッファー
self.fed = []
def handle_data(self, d):
# 任意のタグの中身のみを追加していく
self.fed.append(d)
def get_data(self):
# バッファーを連結して返す
return ''.join(self.fed)
def strip_tags(html):
s = MLStripper()
s.feed(html)
return s.get_data()