Webスクレイピング

PythonでWeb上の情報を取得する方法をまとめました。

実行環境

ホストOSWindows 10 21H1(19043.1826) 64bit
仮想化ソフトウェアVirtualBox 6.1.34 r150636 (Qt5.6.2)
ゲストOSUbuntu 22.04

事前準備

Webページの取得には標準のRequestsライブラリを使用しますが、取得した要素の解析には『beautifulsoup4』ライブラリを使用するのが一般的なようですのでインストールしておきます。

pip install beautifulsoup4

サンプル

WebからHTML要素を取得

find_all()メソッドで特定の要素を取得

複数要素取得する時には『find_all()』、先頭の1つのみ取得するときは『find()』を使用します。引数は基本的には同じなので、『find()』のサンプルは割愛します。
また、類似したメソッドに『select()』と『select_one()』があります。こちらは、検索対象の指定にCSSセレクタを使えるというメソッドですが、find系と返ってくる結果は(ほぼ)同じなので、個人的には正規表現を使える分find系の方がいいかなと思っています。なので、select系のサンプルも割愛します。