PythonのSeleniumの使い方をインストールから動作確認まで、初心者にも分かりやすく解説してます!
Seleniumを使いこなすとブラウザを利用したRPAの作成やWEBスクレイピングなんかもできるので、知っていて損はない技術となります。
コピペ用のサンプルコードも記載しているので、ぜひ活用しちゃってくださいー!
Seleniumとは
Seleniumとは、ブラウザ操作を自動で実行させることができるライブラリです。
対応言語としては、java、Python、RubyなどのSeleniumライブラリもあるみたいですね。今回はPythonのSeleniumについての解説になります。
Pythonでインポートして使用できるライブラリなので、Seleniumを使用することでブラウザを使用したRPA(Robotic Process Automation)をPythonで作成できるということになります。
ブラウザの操作を自動化することができることから、WEBスクレイピングなどをしたい場合によく使われるライブラリです。
Seleniumのインストール
それでは実際に、pipを用いてSeleniumをインストールしていきましょう。
バージョンを指定しない場合(最新バージョン)のインストール
特にバージョンを指定しない場合のインストールコマンドはシンプルです。
以下のコマンドを実行します。
pip install selenium
バージョンを指定しないインストールコマンドでは、最新バージョンのSeleniumがインストールされます。
バージョンを指定したインストール
インストールするSeliniumのバージョンを指定することも可能です。
以下のようにインストールしたいバージョンを明記して、インストールします。
pip install selenium=={指定のバージョン}
インストールの確認
インストールを実行したら以下のコマンドを実行してみてください。
pip list
「pip list」コマンドでインストール済みのパッケージ一覧を表示することができます。
表示された一覧のなかに「selenium」があることを確認しましょう!
Seleniumのアンインストール(バージョン変更など)
一度Seliniumをインストールした後に、最新バージョンや特定のバージョンに変更したいという場合は、一度Seleniumをアンインストールする必要があります。
アンインストールする場合は以下のコマンドを実行します。
pip uninstall selenium
WebDriverのダウンロード
それでは次にWEBDriverをダウンロードしましょう。
WebDriver(ウェブドライバー)はブラウザを外部のソフトウェアから操作するために必要となるものです。今回はSeleniumからブラウザを操作するために、WebDriverを使用します。
この手順ではブラウザはGoogle Chromeを使用することを前提とし、Chrome/Chromium用のWebDriverをインストールしていきます。
以下のページから自分のPCで使用しているChromeのバージョンにあったWebDriverをダウンロードします。
ちなみに、Chromeのバージョンは右上のメニューアイコンから、「ヘルプ」→「Google Chrome について」をクリックすると確認することができます。
対象のWebDriverのダウンロードが完了したら、任意のフォルダに格納しておきます。
SeleniumからWebDriverを呼び出す際に、プログラム上でフォルダパスを指定するので、格納パスは忘れないようにしておいてください。
Seleniumの動作確認
それでは実際にSeliniumの動作確認を行っていきましょう!
今回はシンプルに、Seliniumを使って任意のページを表示するところまでやってみます。
SeleniumとWebDriverの設定
まずは以下の記述を追加してSeleniumとWebDriverの設定を行います。
ここで、先ほどダウンロードしたWebDriverの格納パスを指定します。記述する場合は格納先によってパスの設定を変えてください。
以下の例では「chromedriver.exe」を「C:\Program Files (x86)\chromedriver_win32」フォルダに格納している場合の記述となります。
from selenium import webdriver
ChromeOptions = webdriver.ChromeOptions()
ChromeOptions.add_experimental_option('excludeSwitches', ['enable-logging'])
driver = webdriver.Chrome(executable_path='C:\Program Files (x86)\chromedriver_win32\chromedriver', options=ChromeOptions)
URLを指定してページを表示させる
下準備が終わったらさっそく任意のURLを指定してページを表示させてみましょう。
以下では、Googleのトップページである「https://www.google.com/」を指定しています。
url = "https://www.google.com/"
driver.get(url)
もちろん変数に格納しないでURLを指定しても大丈夫です。
試しにここまでの状態で処理を実行してみましょう。現状ではプログラムは以下のような記載となっております。
from selenium import webdriver
ChromeOptions = webdriver.ChromeOptions()
ChromeOptions.add_experimental_option('excludeSwitches', ['enable-logging'])
driver = webdriver.Chrome(executable_path='C:\Program Files (x86)\chromedriver_win32\chromedriver', options=ChromeOptions)
url = "https://www.google.com/"
driver.get(url)
どうでしょう。
Chromeが起動してGoogleのトップページが表示されたでしょうか。(一瞬表示されて、すぐウィンドウは閉じたかと思いますが)
もし、起動しなかった場合は、以下の点を再確認してみましょう。どこかの設定に誤りがある可能性があります。
- Seleniumが問題なくインストールされていること。(場合によっては一度アンインストールしてインストールしなおす)
- 「WebDriverのバージョン」と「使用しているブラウザのバージョン」が一致していること。
- WebDriverを格納したフォルダのパスとプログラムで指定したパスが一致していること。
時間を指定して処理を待機させる
それでは次にすぐウィンドウが閉じてしまって、全然確認できない!という方のために、待機をさせてみましょう。
また、今後画面の要素を指定したりする場合に、完全にブラウザ読み込みが終わってない状態で実行してしまうとエラーになってしまうので、そのような際にも待機処理は有効です。
待機の記載自体は簡単で、以下をブラウザ表示の直後に追加してみてください。(あ、timeをimportするのを忘れないでください)
import time
# (中略)
time.sleep(5)
どうでしょう。
さっきよりも待機時間が長くなりましたね。
Seleniumのデメリット
こんなに簡単に使えて、良いことばかりに見えるSeleniumですが、デメリットはあるのでしょうか。
しいて挙げるとすれば、速度に関する点でしょうか。(Python自体が遅いと言われればそれまでですが)
動作が遅い
SeleniumはWebDriverを利用して、実際にブラウザを操作します。そのため、動作がもたもたしているという印象もあります。
しかし、実際にブラウザを使用することで、javascriptを利用したページへの操作も可能としているので、まあそこはしょうがないところでしょう。
ですが!じつはブラウザの表示を行わないずに、実行させる「ヘッドレスモード」という指定も可能です。画面上で動作を確認する必要がない場合などは、ヘッドレスモードにした方が良さそうですね!
(しかし、個人的にはヘッドレスモードにしたからと言って、そこまで高速に動作するというほどでもない気がしましたが・・・。)
ヘッドレスモード(ブラウザ表示を行わない)の指定方法
それではヘッドレスモードの指定をしてみましょう。
指定方法は簡単で、オプションの指定の際に以下の記載を追加するだけです。
ChromeOptions.add_argument('--headless')
オプションにヘッドレスモードの指定をしてから、driverの定義を行ってください。
プログラム全体としては以下のようになります。
import time
from selenium import webdriver
ChromeOptions = webdriver.ChromeOptions()
ChromeOptions.add_experimental_option('excludeSwitches', ['enable-logging'])
ChromeOptions.add_argument('--headless')
driver = webdriver.Chrome(executable_path='C:\Program Files (x86)\chromedriver_win32\chromedriver', options=ChromeOptions)
url = "https://www.google.com/"
driver.get(url)
time.sleep(5)
試しに実行してみてください。今度はブラウザが表示されなくなっているかと思います。
Seleniumのインストールと動作確認 まとめ
今回はインストールから軽い動作確認までしかしていないので、ただブラウザを表示しただけでしたが、自動でブラウザを制御していくイメージはつかめたのではないでしょうか。
ここから実際に画面の要素から情報を取得したり、ボタンを操作したりなども可能ですので、さらに使いこなしていっていただければと思います!
(そのうち、ちゃんと続編の記事アップします・・・。たぶん・・・。)
本記事ではSeleniumの解説が主でしたが、「Python」自体が良く分からないという方や、体系的に基礎から「Python」を学びたいという方へは以下のような入門者用の講座もあるようですので、気になる方はぜひ内容を確認して見てくださいー!
コメント