Pythonは、Webスクレイピングに適した開発言語と言われています。
それは、PythonにBeautiful Soupが存在しているからです。
数々のサイトをスクレイピングしてきて、本当にそう思います。
PHPやNode.jsで頑張ってスクレイピングをした経験もあります。
それらと比べると、Pythonでのスクレイピングは圧倒的に簡単です。
そして、それはBeautiful Soupのおかげと言えます。
本記事の内容
- Beautiful Soupとは?
- Beautiful Soupのシステム要件
- Beautiful Soupのインストール
- Beautiful Soupの動作確認
それでは、上記に沿って解説していきます。
Beautiful Soupとは?
Beautiful Soupとは、Webページから情報を簡単にスクレイピングするためのライブラリです。
ただし、Beautiful Soup自体はWebページへアクセスはしません。
WebページのHTMLから情報を抽出するのが、Beautiful Soupの役割です。
ここで、スクレイピングについて説明しておきます。
スクレイピングには、以下の二つの処理があります。
- WebページへアクセスしてHTMLを取得する
- HTMLから情報を抽出する
そして、Beautiful Soupは[2]を担当するということです。
だから、Beautiful Soup単体ではスクレイピングをできません。
以上、Beautiful Soupについて説明しました。
次は、Beautiful Soupのシステム要件を確認します。
Beautiful Soupのシステム要件
現時点(2021年5月)でのBeautiful Soupの最新バージョンは、4.9.3となります。
この最新バージョンは、2020年10月4日にリリースされています。
サポートOSに関しては、以下を含むクロスプラットフォーム対応となります。
- Windows
- macOS
- Linux
そして、サポート対象となるPythonのバージョンは以下。
- Python 2.7
- Python 3系
3系すべてに対応ということです。
個人的には、古いPythonは切り捨てるべきだと考えています。
互換性を保つためには、それなりに犠牲も伴いますからね。
セキュリティやパフォーマンスなどの犠牲です。
理想は、Pythonの公式開発サイクルに準じることになります。
Pythonの公式開発サイクルが、公開されています。
バージョン | リリース日 | サポート期限 |
3.6 | 2016年12月23日 | 2021年12月 |
3.7 | 2018年6月27日 | 2023年6月 |
3.8 | 2019年10月14日 | 2024年10月 |
3.9 | 2020年10月5日 | 2025年10月 |
このサイクルに合わせているライブラリは、適切にメンテナンスされているように感じます。
とにもかくにも、Beautiful Soupのシステム要件は特に注意することはありません。
Pythonが動けば、どんなOSでも問題ないという感じです。
以上、Beautiful Soupのシステム要件を説明しました。
次は、Beautiful Soupをインストールしていきましょう。
Beautiful Soupのインストール
最初に、現状のインストール済みパッケージを確認しておきます。
>pip list Package Version ---------- ------- pip 21.1.1 setuptools 56.1.0
次にするべきことは、pip自体の更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。
python -m pip install --upgrade pip
では、Beautiful Soupのインストールです。
Beautiful Soupのインストールは、以下のコマンドとなります。
pip install beautifulsoup4
インストールには、一瞬で終わります。
では、どんなパッケージがインストールされたのかを確認しましょう。
>pip list Package Version -------------- ------- beautifulsoup4 4.9.3 pip 21.1.1 setuptools 56.1.0 soupsieve 2.2.1
soupsieveというパッケージも同時にインストールされました。
これは「Soup Sieve」というライブラリになります。
CSSセレクタは、Soup Sieveが担っているということです。
以上、Beautiful Soupのインストールについての説明でした。
最後は、Beautiful Soupの動作確認を行います。
Beautiful Soupの動作確認
Beautiful Soupの動作を確認するサンプルコードは、以下。
from bs4 import BeautifulSoup html = '<html><title>TITLE</title><body><div id="main">BODY</div></body></html>' soup = BeautifulSoup(html, 'html.parser') print(soup.title.text) print(soup.find(id="main").text)
上記を実行した結果は、以下。
TITLE BODY
上記の結果が表示されれば、Beautiful Soupは正常に機能しています。
以上、Beautiful Soupの動作確認の説明でした。