HTMLやXMLの読み込み(ファイル、文字列、URLなど)

ライブラリBeautiful Soupにおける「HTMLやXMLの読み込み」は、データ解析の第一歩となる重要な工程です。Beautiful Soupは、HTMLやXMLデータをPythonオブジェクトに変換し、構造化された形で扱えるようにします。以下に、ファイル、文字列、URL からの読み込み方法について詳しく説明します。


1. 文字列からHTMLを読み込む

python
from bs4 import BeautifulSoup html_string = "<html><body><h1>こんにちは</h1></body></html>" soup = BeautifulSoup(html_string, 'html.parser') print(soup.h1.text) # 出力: こんにちは
  • html.parserはPython標準のパーサーで、追加インストールなしで使えます。

  • 他にもlxmlhtml5libを指定することも可能です。


2. HTML/XMLファイルから読み込む

HTMLファイルの場合

python
from bs4 import BeautifulSoup with open("sample.html", encoding="utf-8") as f: soup = BeautifulSoup(f, 'html.parser') print(soup.title.text)
  • open()関数でファイルを開き、BeautifulSoupに渡します。

  • XMLファイルの場合も同様に読み込み可能です(ただしXMLの構造に応じてパーサーの選択が重要です)。


3. URL(ウェブページ)からHTMLを読み込む

python
import requests from bs4 import BeautifulSoup url = "https://example.com" response = requests.get(url) soup = BeautifulSoup(response.text, 'html.parser') print(soup.title.text)
  • requestsライブラリを使ってHTTPリクエストを行い、レスポンスのテキストをBeautiful Soupに渡します。

  • ウェブスクレイピングの際には、対象サイトの利用規約やrobots.txtの内容を確認する必要があります。


注意点

  • パーサーを明示的に指定しないと、警告が出る場合があります。

  • html.parserは互換性が高いですが、構造が崩れたHTMLに弱いことがあります。精度を重視する場合はlxmlまたはhtml5libが推奨されます。


まとめ

入力元 方法の概要
文字列 BeautifulSoup(文字列, パーサー)
ファイル open()してファイルオブジェクトを渡す
URL requests.get()で取得後にパースする

これにより、どのような形式のHTMLやXMLデータであっても柔軟に解析を始めることができます。

ChatGPT4o 生成日:2025/06/19