BeautifulSoup4でinner_HTMLとouter_HTMLを取得する方法

2019年12月16日

みなさまおはこんばんにちは、せなです

今回はBeautifulSoup4でinner_HTMLを取得する方法とouter_HTMLを取得する方法を説明したいと思います

構成

以下を使用して説明します

from bs4 import BeautifulSoup
soup = BeautifulSoup("""<div class="item"><p id="site">せなブログ</p>""", 'html.parser')

inner_HTML

inner_HTMLは「<p id="site">せなブログ</p>」の箇所が対象となりますので、以下の方法で取得できます

print(str(soup.div.p))
# <p id="site">せなブログ</p>

このような短いHTMLであればタグ名で検索すると早いですね
ですが、長文のHTMLとなるとタグ名検索を織り交ぜつつfind_all()などのメソッドも使用するのがよいです

※str()を使用しない場合には「BeautifulSoup」オブジェクトになるので用途によってはstr()は必要ないです

outer_HTML

outer_HTMLはこの場合ですとHTML全体が範囲となりますので、以下の方法で取得できます

print(str(soup))
# <div class="item"><p id="site">せなブログ</p></div>

soup.div」でも同様の結果が得られますね
状況に応じて使い分けましょう

最後に

今回はかなり簡潔な記事になっているかと思います
以前書いた記事の簡易版のような形なので、良ければ下の記事もお読みください
タグ検索などについて書いてますので、参考になると思います

リンク:BeautifulSoup4のタグオブジェクトの使い方

ここまで読んで下さり、ありがとうございました
ではでは~