Python の文字列から HTML タグを削除する
- 正規表現を使用して Python の文字列から HTML タグを削除する
-
Python で
BeautifulSoup
を使用して文字列から HTML タグを削除する -
Python で
xml.etree.ElementTree
を使用して文字列から HTML タグを削除する
このガイドでは、文字列から HTML タグを削除するためのいくつかの方法を学び、適用します。正規表現、BeautifulSoup
、および XML 要素ツリーを使用します。
正規表現を使用して Python の文字列から HTML タグを削除する
HTML タグには常に記号 <>
が含まれているため。組み込みの re
モジュール(正規表現)をインポートし、compile()
メソッドを使用して、入力文字列で定義されたパターンを検索します。
ここで、パターン <.*?>
は、タグ <>
内の 0 個以上の文字を意味し、可能な限り一致しません。
sub()
メソッドは、出現する文字列を別の文字列に置き換えるために使用されます。ここでは、見つかったオカレンスを空の文字列に置き換えます。
サンプルコード:
# Python 3.x
import re
string = "<h1>Delftstack</h1>"
print("String before cleaning:", string)
to_clean = re.compile("<.*?>")
cleantext = re.sub(to_clean, "", string)
print("String after cleaning:", cleantext)
出力:
#Python 3.x
String before cleaning: <h1>Delftstack</h1>
String after cleaning: Delftstack
Python で BeautifulSoup
を使用して文字列から HTML タグを削除する
BeautifulSoup
は、HTML および XML からデータを取得するための Python ライブラリです。パーサーを使用して HTML と XML を解析します。推奨されるのは lxml
です。
次のコマンドを使用して、続行する前に両方をインストールする必要があります。
#Python 3.x
pip install beautifulsoup4
#Python 3.x
pip install lxml
BeautifulSoup
モジュールをインポートし、次のコードで指定された HTML 文字列を解析しました。text
属性を使用して HTML からテキストにアクセスしました。
サンプルコード:
# Python 3.x
from bs4 import BeautifulSoup
string = "<h1>Delftstack</h1>"
print("String after cleaning:", string)
cleantext = BeautifulSoup(string, "lxml").text
print("String after cleaning:", cleantext)
出力:
#Python 3.x
String after cleaning: <h1>Delftstack</h1>
String after cleaning: Delftstack
Python で xml.etree.ElementTree
を使用して文字列から HTML タグを削除する
ElementTree は、XML を解析してナビゲートするライブラリです。fromstring()
メソッドは、XML を文字列から解析ツリーのルート要素である要素に直接解析します。
itertext()
は、この要素とそのすべてのサブ要素をドキュメント順にループし、すべての内部テキストを返すテキストイテレータを生成します。join()
メソッドは、文字列区切り文字で区切られた反復可能(入力文字列)のすべてのコンポーネント(内部テキスト)をマージすることにより、HTML タグのない文字列を返します。
サンプルコード:
# Python 3.x
import xml.etree.ElementTree as ET
string = "<h1>Delftstack</h1>"
print("String before cleaning:", string)
tree = ET.fromstring(string)
print("String after cleaning:", "".join(tree.itertext()))
出力:
#Python 3.x
String before cleaning: <h1>Delftstack</h1>
String after cleaning: Delftstack
I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.
LinkedIn