[Python] BeautifulSoup4で、innerHTMLとouterHTMLの取得
こんにちは、@yoheiMuneです。
Pythonのスクレイピングで利用するBeatifulSoup4で、innerHTMLとouterHTMLを取得する実装を行ったので、ブログにも書いておきたいと思います。
最後になりますが本ブログでは、vフロントエンド、PHP、サーバー、インフラ、Swift、Node.js、Java、Linux、機械学習、などの技術トピックを発信をしていきます。「プログラミングで困ったその時の、解決の糸口に!」そんな目標でブログを書き続けています。ぜひ、本ブログのRSSやTwitterをフォローして貰えたら嬉しいです ^ ^
最後までご覧頂きましてありがとうございました!
Pythonのスクレイピングで利用するBeatifulSoup4で、innerHTMLとouterHTMLを取得する実装を行ったので、ブログにも書いておきたいと思います。
目次
前提
例えば、以下のようなHTMLがあったとします。<h1 class="title"> <p>サイトのタイトル<img src="logo.png" alt="logo"></p> </h1>それを、以下のように読み込んで、BeautifulSoupのインスタンスを作成し、h1を取得します。
from bs4 import BeautifulSoup html = """ <h1 class="title"> <p>サイトのタイトル<img src="logo.png" alt="logo"></p> </h1> """ soup = BeautifulSoup(html, "html.parser") h1 = soup.find('h1')以降の説明では、変数
h1
に対して処理を行います。innerHTMLを取得する
innerHTMLを取得するには、decode_contents
というメソッドを利用します。print(h1.decode_contents(formatter="html")) # '\n<p>サイトのタイトル<img alt="logo" src="logo.png"/></p>\n'このようにタグ内部のHTMLを取得可能です。
outerHTMLを取得する
変数h1
自体がHTMLを表現しているので、その文字列表現を取得することでouterHTMLを取得できます。# outerHTMLの取得例 print(str(h1)) # <h1 class="title">\n<p>サイトのタイトル<img alt="logo" src="logo.png"/></p>\n</h1>このようにouterHTMLを取得することができます。
最後に
スクレイピングのお仕事で、今回の内容を使う機会がありました。こういうTipsは知っていれば効率が上がって良いですよね〜。今後もブログに書き出していこうと思います。最後になりますが本ブログでは、vフロントエンド、PHP、サーバー、インフラ、Swift、Node.js、Java、Linux、機械学習、などの技術トピックを発信をしていきます。「プログラミングで困ったその時の、解決の糸口に!」そんな目標でブログを書き続けています。ぜひ、本ブログのRSSやTwitterをフォローして貰えたら嬉しいです ^ ^
最後までご覧頂きましてありがとうございました!