Python と Selenium による Web 自動操作の基本

はじめに

前回は Python の簡単なサンプルコードに触れましたが、今回はさらに一歩進んだ内容に挑戦してみましょう。プログラムをより便利に、柔軟に活用するためには、Python 標準機能だけではなく、外部モジュール・パッケージ・ライブラリの導入が欠かせません。これは、WordPress のプラグインや Excel のアドインに相当するもので、用途に応じて機能拡張を行うことで、作業効率や操作性が大幅に向上します。


外部モジュールの導入がもたらすメリット

1. 作業効率の向上

外部モジュールを追加することで、手作業で実装するには手間のかかる処理を自動化できる点は非常に魅力的です。たとえば、Selenium を使えば、ブラウザ操作を自動化し、ログインやデータ収集などの繰り返し作業をプログラムに任せることができます。これにより、人的ミスの削減と同時に作業時間を大幅に短縮できるのです。

2. 信頼性と再現性の確保

自動テストやデータ収集といった処理は、手動操作では環境依存のエラーが発生しやすいですが、標準化されたライブラリを用いることで、環境や状況に左右されず一定の結果を得ることができます。特に Selenium は多くの企業や開発現場で採用されており、その信頼性は実績に裏付けられています。

3. 高度な操作が可能

Python の外部モジュールは、シンプルな自動化だけでなく、複雑なデータ解析や機械学習など、さまざまな分野で活用されています。目的に合わせたモジュール選びを行うことで、プロジェクト全体の品質向上や機能拡充が期待できるのです。


Selenium を使った Web 自動操作の実例

今回ご紹介するのは、Web アプリケーションの自動テストやスクレイピングに大いに役立つ Selenium です。

Selenium の概要と用途

Selenium は、Web ブラウザを自動的に操作するためのオープンソースのフレームワークです。これで、以下のようなシーンで大いに役立ちます。

  • 自動ログイン機能の実装: 定期的なサイトへのログインを自動化し、ユーザー認証プロセスのテストに活用できます。
  • データ収集(スクレイピング): 目的の Web サイトから必要な情報を自動で収集し、データ解析やレポート作成の自動化が可能です。
  • UI テストの自動化: 開発中の Web アプリケーションが期待通りに動作するかを、自動テストとして確認する際に非常に有用です。

こうした機能は、特に大規模なデータ処理や頻繁な更新が求められる現代の Web サービスにおいて、業務効率の向上とエラー防止の観点から欠かせません。

Selenium 導入手順

まず、Selenium モジュールをインストールします。コマンドラインで以下のコマンドを実行してください。

pip install selenium

インストール完了後、ブラウザの自動操作には WebDriver が必要です。以下の手順で準備を整えます。

  1. ChromeDriver のダウンロードページ から、使用中の Google Chrome バージョンに合った WebDriver を取得します。
  2. Chrome のバージョンは、ブラウザ右上の「ヘルプ」>「Google Chrome について」で確認可能です。
  3. ダウンロードしたファイル内の chromedriver.exe を、パスが通ったフォルダにコピーします。Python のインストール時にパス設定を行っている場合は、同じフォルダに配置すると手間が省けます。

この準備により、あとは Selenium を用いてブラウザの自動操作が可能になります。より詳細なインストール方法の専用の解説動画もご用意しているので、ぜひそちらもご覧ください。


実際にどのような場面で役立つか

業務の自動化

たとえば、日々の定型業務として Web サイトへのアクセスやデータ収集を手作業で行っていた場合、Selenium を活用することで自動化が可能です。これにより、手間や時間が大幅に削減され、社員はよりクリエイティブな作業に集中できるようになります。

テストの効率化

開発現場において、Web アプリケーションの動作確認は重要ですが、手動テストは人によって結果が変わるリスクがあります。Selenium による自動テストは、同一条件での繰り返しテストが可能となり、バグ発見の効率が向上します。

スクレイピングによる情報収集

マーケティングリサーチや競合分析などで、定期的に大量のデータを収集する必要がある場合、Selenium を用いたスクレイピングが強い味方となります。自動でデータを抽出し、データベースや解析ツールと連携することで、迅速な意思決定が可能となります。


Selenium の使い方:基本的な操作の流れ

まず、Selenium を利用する前に必要な設定や準備が整っているか確認しましょう。以下に、ChromeDriver を使った基本的なブラウザ操作の例を示します。

初期設定とインポート
Selenium を利用するために、必要なモジュールをインポートします。ここでは、ChromeDriver を使った操作を前提としています。

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time

このコードでは、webdriver でブラウザを操作し、By で要素の取得方法を指定、Keys でキーボード操作、time は動作の待機に使用します。

ブラウザの起動と目的のページへ移動
初めに、webdriver.Chrome() を呼び出して Chrome ブラウザを起動します。起動後、get() メソッドを使ってアクセスしたい URL に移動します。

driver = webdriver.Chrome()  # ChromeDriver のパスが通っている前提です
driver.get("https://www.example.com")

この段階で指定した URL のページがブラウザに表示されます。実際のサイトに合わせて URL を変更してください。

ページ内の要素を取得して操作
ページ内の特定の要素(ボタン、テキストフィールド、リンクなど)を取得し、必要な操作を行います。たとえば、ログインフォームの入力欄に文字を入力する場合は、以下のように記述します。

# 例: ユーザー名入力欄の取得と入力
username_field = driver.find_element(By.ID, "username")
username_field.send_keys("your_username")

# 例: パスワード入力欄の取得と入力
password_field = driver.find_element(By.ID, "password")
password_field.send_keys("your_password")

# 入力完了後、Enter キーを押す(またはログインボタンをクリック)
password_field.send_keys(Keys.RETURN)

ここで find_element を使い、ID 属性で要素を指定しています。サイトによってはクラス名やタグ名、XPath などで取得する必要があるため、ブラウザのデベロッパーツールを活用すると便利です。

操作結果の待機と確認
ページ遷移や処理が完了するまで待機するために、time.sleep() を利用して適切な待機時間を設けます。より高度な場合は、Selenium の WebDriverWait を使って特定の条件が満たされるまで待つ方法もあります。

time.sleep(5)  # ページがロードされるまで待機(秒単位)

ブラウザの終了
自動操作が完了したら、quit() メソッドでブラウザを閉じ、リソースを解放します。

driver.quit()

使い方を理解するためのポイントと応用例

  • コードの意味を理解する:
    各ステップが何をしているのかを確認しながら進めることで、どの部分を変更すれば目的に合った動作になるのかが分かります。たとえば、ログインフォームの要素が異なる場合、By.ID の部分を適切なセレクタに変更します。
  • デバッグと検証:
    ブラウザの開発者ツール(F12 キー)を活用し、ページ内の要素の属性や構造を確認しておくと、要素取得時のミスを防げます。エラーが出た場合は、要素の存在や指定方法を再確認することが重要です。
  • 応用的な使い方:
    基本操作に慣れたら、クリック操作、スクロール、ダイナミックなページの操作(Ajax の読み込み待ちなど)にも挑戦してみてください。これにより、より複雑な自動化処理が可能になり、例えば定期的なデータ収集やテスト自動化など、業務効率向上に直結する活用が期待できます。

このように、Selenium の基本操作を順を追って理解することで、実際の業務や開発の現場でも応用可能な自動化スクリプトを作成する基礎が身につきます。最初はシンプルな操作から始め、徐々に複雑な処理へと発展させていくのがおすすめです。

まとめ

外部モジュールの活用は、Python の持つ本来の可能性を大いに引き出します。特に Selenium のようなツールを使えば、手間のかかる作業を自動化し、業務の効率化や品質向上に直結するメリットがあります。これらの理由から、今回のように新たなモジュールを導入して試行錯誤を重ねることは、今後の開発や業務改善において非常に有意義であると言えるでしょう。

ぜひ、この機会に Selenium をはじめとする外部ライブラリを積極的に取り入れて、Python のさらなる活用法を模索してみてください。

以下は2020年7月に書いた記事です。技術の発展の仕方を確認するため残しておきます。

前回はpythonの簡単な例を試しました。本日はもう少し何ができるかを実践してみましょう。まずはpythonの標準インストールではない機能を追加します。それをモジュール、パッケージ、ライブラリといいますがワードプレスでいうところのプラグインであったり、エクセルであればアドインといったところでしょうか。これらを追加することにより、使い勝手がさらに便利になります。
それではpythonにSeleniumというモジュールを追加します。SeleniumはWebアプリケーションをテストするためのポータブルフレームワークのことであり、この機能を利用してブラウザを自動操作します。これを利用すればサイトに自動ログインしたり、自動で目的のデータを収集することができます。本日は後者をやってみたいと思います。
モジュールを追加するには次のコマンドを入力します。

pip install selenium

すでに追加済みなので画像のようなメッセージとなりました。

次はブラウザにWebDriverを組み込みます。
https://chromedriver.chromium.org/downloads
にて自分のchiromeと同じバージョンのwebdriverをダウンロードします。


chromeのバージョンはブラウザ右上からヘルプ→「Google Chromeについて」にて確認できます。


ダウンロードしたファイルの中身にchromedriver.exeというファイルがあるので、これをパスが通ったフォルダにコピーしておきます。
前回のpythonのインストールの記事でpythonをパスを通す設定でインストールしたのでここと同じフォルダにコピーしました。
より詳しい解説動画を作成してあるのでよろしければご視聴下さい。

これで準備は整いました。

コメント

タイトルとURLをコピーしました