Python
 Computer >> コンピューター >  >> プログラミング >> Python

PythonのBeautifulSoupで空のタグを削除する方法


BeautifulSoupは、HTMLやXMLファイルからデータを抽出するためのPythonライブラリです。BeautifulSoupを活用すれば、HTMLやXMLドキュメント内に含まれる空のタグを削除し、データを人間が読みやすい形式へと変換することもできます。

まず、次のコマンドを実行して、ローカル環境にBeautifulSoupライブラリをインストールします。pip install beautifulsoup4

コード例

# BeautifulSoupライブラリをインポート

from bs4 import BeautifulSoup

# HTMLドキュメントを用意
html_object = """
<p>Python is an interpreted, high-level and general-purpose
programming language. Python's design
philosophy emphasizes code readability with its notable use of
significant indentation.</p>
"""

# HTMLドキュメントからsoupオブジェクトを作成
soup = BeautifulSoup(html_object, "lxml")

# ドキュメント内の各タグを走査し、空のタグを抽出・削除
for x in soup.find_all():
    if len(x.get_text(strip=True)) == 0:
        x.extract()

print(soup)

仕組みの解説

このコードでは、以下の流れで空のタグを検出しています。

  • soup.find_all(): ドキュメント内のすべてのタグを順番に取得します。
  • x.get_text(strip=True): タグ内のテキストを前後の空白を取り除いて取得します。結果が空文字列(長さ0)であれば、そのタグは「空のタグ」と判断できます。
  • x.extract(): 条件に合致したタグをパースツリーから完全に取り除きます。

実行結果

上記のコードを実行すると、空のタグが削除され、指定したHTMLドキュメントが読みやすい形に整形されて出力されます。

<html><body><p>Python is an interpreted, high−level and general−purpose programming language. Python's design philosophy emphasizes code readability with its notable use of significant indentation.</p>
</body></html>
  1. 【初心者向け】Pythonでリストから要素を削除する4つの方法|pop()・remove()・del・clear()の使い方

    Pythonのリスト(list)は線形データ構造の一つで、要素が連続したメモリ領域に格納され、各要素にはインデックスを使ってアクセスできます。 プログラミングをしていると、リストから特定の要素を削除したい場面によく出会います。Pythonにはそのための組み込み機能がいくつか用意されており、目的に応じて使い分けることが大切です。この記事では、代表的な4つの方法「pop()」「remove()」「del」「clear()」をコード例とともに解説します。 1. pop():インデックスを指定して削除する pop() は、引数として渡したインデックス位置にある要素を削除します。さらに、削除された要素を

  2. 【Python】Tkinterでラベルのテキストを削除する方法をわかりやすく解説

    Tkinterは、PythonでGUIベースのアプリケーションを作成・開発するための標準ライブラリです。この記事では、何らかのテキストが表示されているラベルから、そのテキストを削除する方法を解説します。 ラベルからテキストを削除するには、ラベルの表示を切り替えるトリガーとして機能するボタンを作成します。具体的には、config()メソッドを使ってラベルのtext属性を空の文字列に書き換えます。 サンプルコード # Tkinterライブラリをインポート from tkinter import * # tkinterフレームのインスタンスを作成 win = Tk() # ウィンドウのサイズを