PythonのBeautifulSoup4でHTMLに要素を追加する
PythonのBeautifulSoup4モジュールを使って、HTMLドキュメントに要素を追加してみます。
目次
HTMLに要素を追加する手順
手順としては、new_tagメソッドで要素を作って、その要素をHTMLドキュメントにappendメソッドで追加します。
ret = soup.new_tag(name, [attr])
ret.string = content
変数 |
内容 |
---|---|
ret |
新しいタグ要素を示すbs4.element.Tagクラスのオブジェクト。 |
soup |
BeautifulSoupクラスのオブジェクト。 |
name |
タグの名前。 |
attr |
省略可。タグの属性。 |
content |
省略可。タグの内容。 |
最初にタグ名と属性を指定して、後から内容を指定します。
具体的にはこんな感じ。
>>> ret = soup.new_tag('a', href='www.example.com')
>>> ret.string = 'サンプル'
>>> ret
<a href="www.example.com">サンプル</a>
追加する要素を作ったら、appendメソッドでHTMLドキュメントに追加します。
soup.append(new_tag)
変数 |
内容 |
---|---|
soup |
HTMLドキュメントの追加先の要素。 |
new_tag |
追加する要素。 |
appendといえば追加ですね。
HTMLに要素を追加する実施例
元々のHTMLドキュメントとして、下記のようなindex.htmlがあるとします。
<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>
このHTMLドキュメントのUL要素の子要素としてLI要素を追加してみます。 追加する要素の名前はLIで、id属性がhoge、内容は「ほげ」です。
>>> from bs4 import BeautifulSoup
>>> with open('index.html', mode='rt', encoding='utf-8') as f:
... soup = BeautifulSoup(f.read(), 'html.parser')
...
>>> nt = soup.new_tag('li', id='hoge') # 新しい要素を作る
>>> nt.string = 'ほげ'
>>> soup.find('ul').append(nt) # UL要素を検索して追加
>>> 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>
<li id="hoge">ほげ</li></ul>
<h1 class="2nd">2つめの章</h1>
<p>文章</p>
</body>
</html>
LI要素が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を作る