python 文字列からhtmlタグを除去する
pythonで、文字列からhtmlタグを除去するサンプルコードを記述してます。pythonのバージョンは3.10.0を使用してます。
環境
- OS windows11 home 64bit
- python 3.10.0
文字列からhtmlタグを除去
文字列からhtmlタグを除去するには、「正規表現」を使用します。
str1 = "<p>hello</p>"
str2 = "<div><b>world</b></div>"
print(re.sub(re.compile('<.*?>'), '', str1))
# hello
print(re.sub(re.compile('<.*?>'), '', str2))
# world
「BeautifulSoup」を使用することも可能です。使用するには「pip」でインストールを行います。
pip install beautifulsoup4
pip install lxml
実際に実行します。
from bs4 import BeautifulSoup
str1 = "<p>hello</p>"
str2 = "<div><b>world</b></div>"
print(BeautifulSoup(str1, "lxml").text)
# hello
print(BeautifulSoup(str2, "lxml").text)
# world
パフォーマンスは「正規表現」の方が良さそうです。
※それぞれ同じ条件で10万回実行した結果
正規表現 : 1503.2 ms
BeautifulSoup : 154576.6 ms
注意点
どちらも、文字列中に「<」か「>」が含まれていると、タグと認識され除去されます。
from bs4 import BeautifulSoup
str3 = "<div><b>w>o<rld</b></div>"
print(re.sub(re.compile('<.*?>'), '', str3))
# w>o
print(BeautifulSoup(str3, "lxml").text)
# w>o
-
前の記事
jquery エラー「Uncaught TypeError: e.indexOf is not a function」が発生した場合の対処法 2022.09.09
-
次の記事
VSCODE ログを色分けして表示する 2022.09.09
コメントを書く