2008/02/13

BeautifulSoupを使って要素を追加する

BeautifulSoupを使ってHTMLに要素を追加する機会があったのでサンプルを掲載します。BeautifulSoupでは要素をTagクラスとして扱うので、要素を追加する場合はTagクラスのインスタンスを生成して、親となる要素(Tagクラス)の「insert」メソッドで追加することができます。
また、要素にテキストを追加したい場合は「NavigableStringクラス」を使用すれば追加できるようです。

下記が簡単なサンプルです。

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import sys
import codecs

from BeautifulSoup import BeautifulSoup
from BeautifulSoup import NavigableString
from BeautifulSoup import Tag

sys.stdout = codecs.getwriter('cp932')(sys.stdout)

html = """
<div>
<a href="http://www.google.com/">Google</a>
<a href="http://www.yahoo.co.jp/">Yahoo! Japan</a>
</div>

"""

soup = BeautifulSoup(html)

tag = Tag(soup, "a")
tag["href"] = "http://www.r-stone.net/"
text = NavigableString("リバーストーン")
tag.insert(0, text)

soup.div.insert(0, tag)

print soup.prettify()



このプログラムを実行すると



<div>
<a href="http://www.r-stone.net/">
リバーストーン
</a>
<a href="http://www.google.com/">
Google
</a>
<a href="http://www.yahoo.co.jp/">
Yahoo! Japan
</a>
</div>




と表示され、正常に要素が追加されているようです。

ラベル:

0 件のコメント :

コメントを投稿

この投稿へのリンク :

リンクを作成

<< ホーム