Beautiful Soupとは?Pythonスクレイピングの定番ライブラリを基礎から実践まで解説
Webページからデータを自動収集したい場面は多くあります。価格調査、競合分析、ニュース収集など、手作業では非効率な情報取得を自動化する技術がWebスクレイピングです。Pythonでスクレイピングを行う際に最も広く使われているライブラリがBeautiful Soupです。 Beautiful Soup(ビューティフルスープ)は、HTMLやXMLドキュメントを解析し、必要なデータを抽出するためのPythonライブラリです。2004年にLeonard Richardson氏によって公開され、20年以上にわたりPythonのスクレイピング分野で標準的な存在となっています。現在の最新バージョンはBeautiful Soup 4.14.3(2025年11月リリース)で、MITライセンスのもとオープンソースで提供されています。 ライブラリ名は、ルイス・キャロルの小説『不思議の国のアリス』に登場する「Beautiful Soup」という詩と、不正なHTMLを指す俗語「tag soup(タグスープ)」に由来しています。構造の崩れたHTMLでも美しく解析できるという意味が込められています。 出典: PyPI beautifulsoup4 / Beautiful Soup公式サイト Beautiful Soupの特徴と他ライブラリとの違い Beautiful Soupには、他のHTML解析ツールと比較して際立つ3つの特徴があります。 壊れたHTMLへの耐性 実際のWebページには、閉じタグの欠落やネストの不整合など、仕様に準拠しないHTMLが数多く存在します。Beautiful Soupは、こうした不正なマークアップを自動的に補正しながら解析できます。正規表現だけでHTMLを処理しようとすると、こうした不整合に対処しきれず、抽出に失敗するケースが頻発します。 複数パーサーの切り替え Beautiful Soupはそれ自体がHTMLパーサーではなく、外部パーサーのラッパーとして機能します。用途に応じて複数のパーサーを切り替えられる設計になっています。 パーサー インストール 処理速度 壊れたHTMLへの寛容性 適した用途 html.parser 不要(Python標準) 中程度 中程度 追加インストールなしで手軽に使いたい場合 lxml pip install lxml 最速(C言語実装) 高い 大量のページを高速に処理する場合 html5lib pip install html5lib 低速 非常に高い(ブラウザと同等) 極端に壊れたHTMLを正確に解析する場合 lxml-xml pip install lxml 高速 ― XMLドキュメントの解析(唯一のXMLパーサー) 実際のベンチマークでは、同じHTMLを100回解析した場合にlxmlが約7.5秒、html.parserが約11.8秒、html5libが約22.4秒という結果が報告されています。速度重視ならlxml、依存関係を減らしたいならhtml.parserが適切です。 出典: Beautiful Soup公式ドキュメント 直感的なAPI設計 Beautiful Soupは、Pythonのイディオムに沿ったシンプルなAPIを提供しています。HTMLの要素をPythonオブジェクトとして扱え、辞書のように属性にアクセスできるため、学習コストが低い点も特徴です。 Beautiful Soupのインストール手順 Beautiful Soupの導入は、pipコマンド1行で完了します。 pip install beautifulsoup4 パッケージ名はbeautifulsoup4です。beautifulsoup(数字なし)は旧バージョン(BS3)のパッケージなので注意が必要です。 ...