10分でわかるBeautifulSoup4のインストール
- 作成日: 2020-11-06
- 更新日: 2023-12-24
- カテゴリ: BeautifulSoup4
10分でわかるBeautifulSoup4のインストール
プログラミング言語のPythonにはBeautifulSoup4(ビューティフル・スープ・フォー)という外部ライブラリがあります。
これはHTMLやXMLをパース(解析)するライブラリです。
スクレイピングなどではおなじみで、取得したWebページのコンテンツをパースして、タグ(要素)を取得したいときなどによく使われます。
バージョンを重ね洗練されていったライブラリなので、ストレスもなく簡単に使うことができます。
名前は長いですが、それを差し引いても非常にパワフルで便利なライブラリと言えます。
正確にはパーサーではなく、複数のHTMLパーサーを統合して共通したインターフェースをユーザーに提供するラッパーと言えるライブラリです。
また、BeautifulSoup4の内部で使用するパーサーを明示的に変更することも可能で、これによって柔軟な指定が可能になります。
海外のライブラリなので、公式ドキュメントは英語ですが、有志の方により和訳のページ↓も用意されています。
ただ和訳の方は最終更新日がかなり前なので、最新の情報が知りたい場合は英語の公式ドキュメント↓を見たほうがいいでしょう。
今回はBeautifulSoup4のインストールについて、以下のようにまとめました。
- インストール方法
- 初期化方法
最初にBeautifulSoup4のインストール方法から解説します。
インストール方法
BeautifulSoup4はPythonの標準ライブラリではなく、外部ライブラリです。
そのためインストールにはpip
などのパッケージマネージャーが必要になります。
pip
はPythonをインストールしている環境であれば使えるようになっていることが多いです。
環境にpip
がインストールされているかどうかは↓のコマンドで確認可能です。
Linux環境の人は↓のようにシェルにpip
とコマンドを打ち込んでみてください。
pip
またWindows環境の人もコマンドプロンプトやPowerShellなどを開き、↓のコマンドを実行してみてください。
pip
pip
がインストールされていれば、pip
の使い方が画面に表示されると思います。
pip
がインストールされていることが確認できたら↓のようにBeautifulSoup4をインストールします。
pip install BeautifulSoup4
すると↓のようなログが流れ、BeautifulSoup4がインストールされます。
Collecting BeautifulSoup4
Downloading beautifulsoup4-4.9.3-py3-none-any.whl (115 kB)
|████████████████████████████████| 115 kB 3.3 MB/s
Collecting soupsieve>1.2; python_version >= "3.0"
Using cached soupsieve-2.0.1-py3-none-any.whl (32 kB)
Installing collected packages: soupsieve, BeautifulSoup4
Successfully installed BeautifulSoup4-4.9.3 soupsieve-2.0.1
今回はバージョン4.9.3
のBeautifulSoup4がインストールされました。
インストールの際に明示的にBeautifulSoup4のバージョンを指定したい場合は↓のように、インストール時にバージョンを指定します。
pip install BeautifulSoup4==4.9.3
pip show
コマンドを使うとインストールしたBeautifulSoup4の情報を確認できます。
pip show BeautifulSoup4
初期化方法
次にBeautifulSoup4の初期化方法です。
BeautifulSoup4をPythonのプログラムの中で使うには、まず最初にBeautifulSoup4をインポートする必要があります。
from bs4 import BeautifulSoup4
↑のようにbs4
モジュールからBeautifulSoup4
クラスをインポートすれば準備完了です。
次にBeautifulSoup4
クラスを初期化します。
BeautifulSoup4では↑でインポートしたBeautifulSoup4
クラスをメインに使います。
このクラスをオブジェクト、インスタンスにして、そのメソッドを操作することでHTMLのDOMを操作することが可能です。
BeautifulSoup4
クラスは初期化時に2つの引数を必要とします、
第1引数はパース対象の文字列です。これにはHTMLで記述された文字列を指定します。
第2引数は内部パーサーを表す文字列です。これには複数のパーサーを指定可能です。
BeautifulSoup4
クラスを↓のようにオブジェクトにします。
soup = BeautifulSoup4('<p>test</p>', 'html.parser')
↑のBeautifulSoup4
クラスの第1引数に指定している<p>test</p>
は、とりあえずこの内容にしていますが、これは空文字列でも別のHTMLの文字列でもかまいません。
ただのテスト用の文字列です。
第2引数のhtml.parser
は文字列の定数です。
第2引数にhtml.parser
を指定した場合、BeautifulSoup4
クラスはパースで標準ライブラリのhtml.parser
を使います。
標準ライブラリのhtml.parser
は何も準備しなくても、指定するだけで使うことが出来る一番お手軽なパーサーです。
使える内部パーサーの種類
BeautifulSoup4
クラスの第2引数に指定できるパーサーは↓の通りです。
- html.parser
- lxml
- lxml-xml
- html5lib
現在は全部で上記4つのパーサーが使えるようになっているようです。
html.parser
Pythonの標準ライブラリのHTMLパーサーです。
速度はほどほど。
Python3.2以降はDOMの解釈が寛容なパーサーです。
とりあえず最初はこのパーサーを使うといいでしょう。
これは標準ライブラリのパーサーなので特に環境をセットアップしなくても、Pythonがインストールされていれば使えるようになっているはずです。
また、速度もほどほどに出るため、ほとんどの場合このパーサーで困ることはないはずです。
DOMの解釈をもっと寛容にしたい場合はhtml5lib
などのパーサーの利用を検討するといいでしょう。
lxml
外部ライブラリのHTMLパーサーです。
速度はとても速いです。
DOMの解釈は寛容です。
Cライブラリに依存しています。
外部ライブラリなので↓のようにpip
でインストールしておく必要があります。
pip install lxml
lxml-xml
lxml
外部ライブラリのXMLパーサーです。
速度はとても速いです。
Cライブラリに依存しています。
外部ライブラリなので、↓のようにpip
でちょろっとやっておきましょう。
pip install lxml
html5lib
非常に寛大な外部ライブラリのHTMLパーサーで、Webブラウザと同じ方法でページを解析します。
ただ遅いです。
Pythonの外部ライブラリに依存します。
外部ライブラリなので例によって↓のようにインストールします。
pip install html5lib
問題
Q1: BeautifulSoup
クラスの第1引数として適当なものを答えよ
- XMLが書かれた文字列
- HTMLが書かれた文字列
- JSONが書かれた文字列
Q2: BeautifulSoup
クラスの第2引数として適当なものを答えよ
- html.parser
- lxml
- json
Q3: BeautifulSoup
クラスのライセンスを答えよ
- GPL v2
- MIT
- Apache v2
↑の問題の正解はこちら↓。
Q1: 1, 2
Q2: 1, 2
Q3: 2