Check


プログラミングが無料で学べるYouTubeチャンネルを配信中!

RubyやPython、PHPやReactなど様々なプログラミング言語のチュートリアル動画が充実!

チャンネル登録はこちら

Python

【Python】Seleniumを使ったWebスクレイピングのサンプルコードを解説

動画で解説を見る



開発環境

  • Python version: python 3.10.11
  • selenium: 4.17.2

Pythonのseleniumとは

Seleniumは、Webブラウザを自動的に制御してWebアプリケーションのテストやスクレイピングを行うためのツールとして広く使用されているプログラミングフレームワークです。

2004年にJason Hugginsによって作られたSeleniumは、JavaScriptを使用してWebページのテストを自動化するためのツールとして開発されました。

その後、Selenium WebDriverが導入されたことによってブラウザを直接制御できるようになり、より広範で効果的なWebブラウザ自動化ツールとして広く利用されるようになりました。

Seleniumは様々なプログラミング言語向けにバインディングやラッパーが提供されており、Python言語向けにSeleniumを使用するためのラッパーやバインディングも提供されています。

公式ドキュメント:https://www.selenium.dev/ja/documentation/

Pythonのseleniumの使い方

Pythonのseleniumの使い方を解説していきます。

Seleniumをインストール

まずはSeleniumをインストールするために下記のコマンドを実行します。

WebDriverのインストール

次にWebDriverのインストールをしていきます。

GoogleChromeWebDriverは「https://chromedriver.chromium.org/downloads」からダウンロードすることができます。

Chrome バージョン 115 以降を使用している場合は、Chrome for Testingの可用性ダッシュボード「https://googlechromelabs.github.io/chrome-for-testing/」を参照してください。

wgetcurlコマンドでもダウンロードできますが、今回は割愛します。

WebDriverを適切な場所に移動

次にダウンロードしたWebDriverを適切な場所に移動します。

Linuxであれば「/usr/local/bin/」配下に設置することが一般的ですが、pythonの実行ファイルの直下などでも問題ありません。

※今回のGoogleChromeWebDriverであればmacやlinuxは「chromedriver」、Windowsであれば「chromedriver.exe」ファイルです。

これで準備完了です。

Pythonのseleniumでスクレイピングする

次にPythonのseleniumでスクレイピングするサンプルコードを解説しています。

スクレイピングのサンプルコード

下記はSeleniumを使用してGoogleでキーワード検索を行い、検索結果からタイトル、URLなどの情報を取得する簡単なウェブスクレイピングのサンプルコードです。

WebDriverのインスタンスを作成

下記のコードではWebDriverのインスタンスを作成し、ChromeDriverを指定してChromeブラウザを起動します。

Seleniumは自動的にインストールされたChromeDriverを探して使用してくれますが、特定のChromeDriverバージョンが必要な場合や、カスタム設定が必要な場合はexecutable_pathを使用します。

Googleの検索ページにアクセス

下記はGoogleの検索ページにアクセスしています。

キーワードを入力して検索を実行

下記はキーワードを入力して検索を実行しています。

また、WebDriverWaitを使用する子により、検索ボックスが読み込まれるまで待機するように制御しています。

検索結果が読み込まれるまで待機

下記は検索結果が読み込まれるまで待機しています。

検索結果が読み込まれるまでに次の処理が行われた場合、要素が見つからずエラーになることがあるので注意しましょう。

検索結果の一覧から各要素の情報を取得

下記は検索結果の一覧から各要素の情報(サイト名、タイトル、URL)を取得し、データをリストに追加しています。

要素を取得する方法はHTML要素のid属性、name属性、class属性、タグ名のほかに XPathクエリやCSSセレクタなどがあります。

取得したデータを出力

最後に全体のデータを出力し、ブラウザを閉じます。

おわりに

今回はPythonでSeleniumを使ったスクレイピングの方法について解説していきましたが、いかがだったでしょうか。

SeleniumはWebテスト自動化のために開発されたライブラリではりますが、WebスクレイピングなどHTMLを解析してWebページから情報を抽出するためにも使用できます。

特定のWebサイトからデータを収集したり、特定のアクションを実行したりするために役立ちますので、是非、使いこなしていきましょう。

Check


プログラミングが無料で学べるYouTubeチャンネルを配信中!

RubyやPython、PHPやReactなど様々なプログラミング言語のチュートリアル動画が充実!

チャンネル登録はこちら

-Python