【Python】(業務自動化) HTMLやXMLからデータを抽出して、要素を取り出す方法

Pytyon

Beautiful SoupはPythonのWebスクレイピングライブラリであり、HTMLやXMLからデータを抽出するために使用されます。この記事では、Beautiful Soupをインストールする方法について詳しく説明します。

参考書籍

業務効率化に向けたおすすめの参考書になります。

コード表

<コード>

Beautiful Soupのインストール
Beautiful SoupはPythonのパッケージ管理システムであるpipを使用して簡単にインストールできます。以下のコマンドを使用して、Beautiful Soupをインストールします。

pip install beautifulsoup4

HTMLパーサーの選択
Beautiful SoupはHTMLやXMLの解析を行う際に、バックエンドで異なるパーサーを使用します。デフォルトでは標準ライブラリのhtml.parserが使用されますが、他にもlxmlhtml5libといったパーサーが利用可能です。これらのうち、lxmlが高速であり、一般的に推奨されています。

例えば、lxmlを使用してBeautiful Soupをインストールする場合は、以下のコマンドを使用します。

pip install beautifulsoup4 lxml

以下に例として、HTMLのtbody要素内にあるtr要素の数を調べるとした場合。
Beautiful Soupなどのライブラリを使用してHTMLをパースし、該当する要素を取得してカウントすることができます。以下は、Beautiful Soupを使用してtbody内のtr要素の数を調べる方法の例です。

from bs4 import BeautifulSoup

# 仮のHTMLコード
html_content = """
<html>
<body>
<table>
<tbody class="ig-1111 ig222">
<tr><td>Row 1</td></tr>
<tr><td>Row 2</td></tr>
<tr><td>Row 3</td></tr>
</tbody>
</table>
</body>
</html>
"""

# BeautifulSoupを使用してHTMLをパース
soup = BeautifulSoup(html_content, 'html.parser')

# tbody要素を取得
tbody = soup.find('tbody', class_='ig-1111 ig222')

# tbody内のtr要素の数をカウント
tr_count = len(tbody.find_all('tr'))

print("tbody内のtr要素の数:", tr_count)

または、指定された条件(aタグのIDが000000の場合)に一致するaタグのhref属性の値を取得する場合には、Beautiful Soupを使用してHTMLを解析し、条件に一致するaタグを見つけ、そのhref属性を取得する

from bs4 import BeautifulSoup

# 仮のHTMLコード
html_content = """
<html>
<body>
<a id="000000" href="https://example.com">Link 1</a>
<a id="111111" href="https://example.org">Link 2</a>
<a id="222222" href="https://example.net">Link 3</a>
</body>
</html>
"""

# BeautifulSoupを使用してHTMLをパース
soup = BeautifulSoup(html_content, 'html.parser')

# aタグを取得(IDが000000の場合)
a_tag = soup.find('a', id='000000')

# aタグが見つかった場合は、href属性の値を取得
if a_tag:
    href_value = a_tag.get('href')
    print("href属性の値:", href_value)
else:
    print("指定された条件に一致するaタグが見つかりませんでした")

CM

コメント

タイトルとURLをコピーしました