Seleniumってなに?
ITにおけるSeleniumとは、Webアプリケーションの機能テストや結合テストの自動化を実現するブラウザ駆動型のテストツール群です。Webアプリケーションのテスト自動化に特化したさまざまな機能を備えています。
Seleniumはブラウザの操作だけでなく、Webの要素を取得することも可能です。簡単に言うと、ブラウザ操作を自動化できるツールです。
ただし、Seleniumを使ってスクレイピングを行うことは推奨されていないようです。Seleniumは主に「ブラウザ操作を自動化する」という目的に特化しています。
Seleniumを使用する準備
Seleniumを使うためには以下の2つの準備が必要です。
- pipを使ってSeleniumをインストールする。
- 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
ただし、上記のサイトは公式なリファレンスではないため、使用にあたっては自己責任で行う必要があります。
コメント