Beautiful Soup は、HTMLやXMLといったマークアップ言語の文書を構文解析するためのPythonパッケージである。ドキュメントから構築された解析木はウェブスクレイピングに有用である。

Beautiful Soupはレオナルド・リチャードソンによって開始された。彼はプロジェクトへの貢献を続けている。また、オープンソースソフトウェアを管理するTideliftによっても支援されている。

コード例 Beautiful Soupは、通常のPythonのループで探索及び反復処理が可能な木構造として、パースしたデータを表現する。

以下の例では、Pythonの標準ライブラリである urllib を用いて、ウィキペディアのメインページを読み込み、Beautiful Soupで構文解析し、全てのハイパーリンクを得る。 #!/usr/bin/env python3 # HTML文書からのハイパーリンクの抽出 from bs4 import BeautifulSoup from urllib.request import urlopen

with urlopen('https://en.wikipedia.org/wiki/Main_Page') as response: soup = BeautifulSoup(response, 'html.parser') for anchor in soup.find_all('a'): print(anchor.get('href', '/'))

次の例では、PythonのRequestsライブラリを使用してページを取得し、全div要素を抽出している。 import requests from bs4 import BeautifulSoup

url = "https://wikipedia.org" response = requests.get(url) soup = BeautifulSoup(response.text, "html.parser") headings = soup.find_all("div")

for heading in headings: print(heading.text.strip())

歴史 Beautiful Soupは不思議の国のアリスの詩と構造が粗末なHTMLコードを意味するの両方にちなんで名づけられた。

2006年4月から2012年3月までは、Beautiful Soup 3 がリリースされていた。 最新版の Beautiful Soup 4.x はpip install beautifulsoup4からインストールできる。

2021年に、Python 2.7 のサポートが終了し、 Beautiful Soup 4.9.3 がPython 2.7をサポートする最後のバージョンとなった。

脚注