PythonとSeleniumでWeb自動化入門 簡単なサンプルコードも紹介

スポンサーリンク

Seleniumってなに?

ITにおけるSeleniumとは、Webアプリケーションの機能テストや結合テストの自動化を実現するブラウザ駆動型のテストツール群です。Webアプリケーションのテスト自動化に特化したさまざまな機能を備えています。

引用元: Seleniumとは―読み方、意味、WebDriverの使い方 | イー・アルゴリズム

Seleniumはブラウザの操作だけでなく、Webの要素を取得することも可能です。簡単に言うと、ブラウザ操作を自動化できるツールです。

ただし、Seleniumを使ってスクレイピングを行うことは推奨されていないようです。Seleniumは主に「ブラウザ操作を自動化する」という目的に特化しています。

スポンサーリンク

Seleniumを使用する準備

Seleniumを使うためには以下の2つの準備が必要です。

  1. pipを使ってSeleniumをインストールする。
  2. geckoDriverをダウンロードして、カレントディレクトリに配置する。

Seleniumを使用するためのドライバーであるgeckoDriverは、以下のサイトから入手できます

Releases · mozilla/geckodriver · GitHub

実際にgeckoDriverがない状態でプログラムを進めると、モジュールが使えないことも確認しました。

Seleniumをimportする方法

通常、モジュールをインポートするには「import モジュール名」と書けばよいのですがseleniumをインポートする書き方は「form~」のほうを使います。

from selenium import webdriver

webdraiverとかくところがポイントですね。

Seleniumを使ったサンプルコード

from selenium import webdriver

browser = webdriver.Firefox()
browser.get('http://inventwithpython.com')

try:
    elem = browser.find_element_by_class_name('bookcover')
    print('そのクラスを持つ要素<{}>を見つけました。'.format(elem.tag_name))
except:
    print('そのクラス名を持つ要素は見つかりませんでした。')

上記のコード6行目の例ですとclassnameがbookcoverという要素を取得し、これがWebDriverオブジェクトといものになります。

そして7行名ではelem.tag_nameとしており、これでtagの名前をとってくることができます。

「find_element」ではなく「find_elements」を使う場合はリストを返します。

firefox以外のドライバーも使える

以前はFirefoxでしか使えないという固定観念がありましたが、実際にはChromeでも使用できることを確認しました。ただし、Chrome用のWebドライバーを同じようにカレントディレクトリに配置する必要があります。

Seleniumの使い方や準備について詳しいリファレンスを探していたところ、次のサイトが非常に参考になりそうです: Selenium Python Bindings

ただし、上記のサイトは公式なリファレンスではないため、使用にあたっては自己責任で行う必要があります。

コメント

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