Python

【Python】HTML形式の文字列からタグを削除


HTMLファイルを対象とした自然言語処理では、タグの部分を削除し、本文のみを抽出する作業を行うケースがあります。

本記事では、文字列からHTMLタグのみを削除する方法について簡単に解説します。

実際にプログラムを作成してみる

文字列からHTMLタグのみを削除する方法の概要、実装例を紹介します。

アプローチ

この処理を行うに当たっては、正規表現を利用します。

後述のメソッドを用いてHTMLタグを表す正規表現を空文字で置き換える形になります。

なお、HTMLタグを表す正規表現は以下の通りです。

HTMLタグを表す正規表現 : '<.+?>'
-----------------------------------
  . : 任意の1文字にマッチ
 +? : 直前の文字が 1回以上 繰り返す場合にマッチ

実装例

上記のアプローチを基にプログラムを作成します。

import re

if __name__ == '__main__':

    html_code = '<p><a href="https:~">ココをクリック!</a></p>'
    print('Before : \n{0}\n'.format(html_code))

    a = '<.+?>'  # タグを表す正規表現
    b = ''       # 空文字
    html_code = re.sub(a, b, html_code)  # 引数1を引数2で置き換える(引数3の文字列が対象)
    print('After  : \n{0}'.format(html_code))

このプログラムを実行すると以下の出力結果が得られます。

Before :
<p><a href="https:~">ココをクリック!</a></p>

After  :
ココをクリック!

出力結果から無事にHTMLタグの削除が完了していることがわかります。