PythonのBeautifulSoup4でHTMLの要素の内容を削除する
PythonのBeautifulSoup4モジュールを使って、HTMLドキュメントの要素(タグ)の内容を削除します。
目次
HTMLの要素の内容を削除する手順
clearメソッドを使って指定の要素の内容を削除します。
要素そのものを削除する場合は、 decomposeメソッドなど を使用します。
soup.clear()
変数 |
内容 |
---|---|
soup |
内容を削除したい要素。 |
clearで中身が消えるって、クリアですね。
HTMLの子要素を削除する実施例
こういうindex.htmlがあったとして、最初のH1要素の内容を消してみたいと思います。
<html>
<head></head>
<body>
<h1 class="1st">最初の章</h1>
<ul>
<li id="foo">項目1</li>
<li id="bar">項目2</li>
<li id="bar">項目3</li>
</ul>
<h1 class="2nd">2つめの章</h1>
<p>文章</p>
</body>
</html>
class属性が1stのh1要素を検索すればよいわけですね。
>>> from bs4 import BeautifulSoup
>>> with open('index.html', mode='rt', encoding='utf-8') as f:
... soup = BeautifulSoup(f.read(), 'html.parser')
...
>>> soup.find('h1', class_='1st').clear() # クリアの実行
>>> soup # クリア後のオブジェクトの表示
<html>
<head></head>
<body>
<h1 class="1st"></h1>
<ul>
<li id="foo">項目1</li>
<li id="bar">項目2</li>
<li id="bar">項目3</li>
</ul>
<h1 class="2nd">2つめの章</h1>
<p>文章</p>
</body>
</html>
最初のH1要素の内容が無くなりました。
続けて、UL要素の中身もクリアしてみましょう。
>>> soup.find('ul').clear()
>>> soup
<html>
<head></head>
<body>
<h1 class="1st"></h1>
<ul></ul>
<h1 class="2nd">2つめの章</h1>
<p>文章</p>
</body>
</html>
UL要素の子要素が全て消えました。
公開日
広告
PythonとXMLカテゴリの投稿
- PythonでHTMLから特定のタグを抜き出してCSVにする
- PythonでHTMLを加工する
- PythonでXMLと文字列の変換
- PythonでXMLの構造を表示してみた
- PythonでXMLの読み込みと書き出し
- PythonのBeautifulSoup4でHTMLに要素を追加する
- PythonのBeautifulSoup4でHTMLの要素の内容にアクセスする
- PythonのBeautifulSoup4でHTMLの要素の内容を削除する
- PythonのBeautifulSoup4でHTMLの要素の囲いを外す
- PythonのBeautifulSoup4でHTMLの要素を削除する
- PythonのBeautifulSoup4でHTMLの要素を抜き出す
- PythonのBeautifulSoup4でHTMLの要素を新しい要素で囲う
- PythonのBeautifulSoup4でHTMLの要素を検索する
- Pythonのxmlで要素を列挙する
- PythonのxmlモジュールのElementTreeのルート要素を取得する
- PythonのxmlモジュールのElementからElementTreeを作る