20210311_win_python_selenium_title

【テスト自動化】Python selenium(Windows/Anaconda/各Driver)の環境構築設定

皆さん、こんばんは。
今回から数回にわたって、Webスクレイピングに関する内容をご紹介していきたいと思います。
Python言語で、「Selenium」ライブラリを使用して、Chrome/Edge/FireFoxといった各ブラウザのWebスクレイピングについて、
ご紹介していきます。
今回ご紹介するのは、WindowsOSでの環境設定となります。
以下内容に沿って、述べていきたいと思います。

■記事内目次

概要説明
環境構築について
Anacondaの導入
Chrome/Edge/FireFoxドライバの導入
JupyterLabでの設定

□概要説明

まず、Webスクレイピングにつきまして、ニュースサイトなどのWebデータの抽出等、サイトやYoutubeなどの動画でよく見ると思います。
上記のサイト情報や動画は、簡単なものから難しいものまでありますが、一般的には、開発者視点でまとめられていることが多くあると、私は感じました。
とても有益な情報だと思いますが、開発知識があること前提の場合も多く感じれらます。
また、Webスクレイピングの情報を得てさらに関連する内容を知りたいと思っても、なかなか思うような情報が無く、再度Googleで検索するということがあると思いました。

そこで、私はテスト視点に立って、Webスクレイピングの情報を同ブログ内になるべくまとめていきたいと考えています。
Webスクレイピングの情報の他、操作の組み合わせで、テストの自動化、業務効率化につながる内容をまとめていきたいと思っています。

□環境構築について

今回の環境構築は、以下となっています。
・言語:Python
・ライブラリ:Selenium
・コーディング:Anaconda/JupyterLab

◇Python

Pythonは、人気言語のひとつですね。
「2021 Language ranking」と検索すると、ほとんど上位に入っている言語です。
以下のサイトでは、1位となっていました。(サイトによっては、調査対象等により順位が変動している場合もあります。)
Win_web01
https://becominghuman.ai/top-20-most-popular-programming-languages-for-2021-and-beyond-735ee8370c61
AIや、データ分析など幅広い分野でも使用されている言語です。
また、Webスクレイピング、自動化などのスクリプトを書く場合も、他の言語と比べ、かなり書きやすく思います。

◇Selenium

これは、Webスクレイピング、Web自動化では有名ですね。
以下サイトでは、1位となっていました。
Win_web02

Win_web02_2
https://briananderson2209.medium.com/best-automation-testing-tools-for-2018-top-10-reviews-8a4a19f664d2
利用できる言語が多く、また2004年から16年以上使われていますので、情報が豊富です。

「Katalon Studio」というソフトも2位につけていますが、2018年、2019年ごろに一部有料化になってしまいました。
本ブログでも取り上げる予定ですが、まずはSeleniumから取り上げていきたいと思います。

◇Anaconda/JupyterLab

Pythonのコーディングツールとしては、「PyCharm」「Visual Studio Code」などがあります。
「Anaconda」の「JupyterLab」は、上記コーディングツールよりも比較的新しいものとなっています。

「Anaconda」の「JupyterLab」を取り上げたの理由は、導入のしやすさ、また私がPythonを初めてコーディングした際のツールであったためです。
「Visual Studio Code」等は、Pythonを拡張機能で別途導入する必要があったりしますが、「Anaconda」では内包されています。

「JupyterLab」については、後ほど詳しくご紹介しますが、「セル」と呼ばれる中に、コードを書くことで、端的に実行することが可能です。
Win_web03

個人的に、操作しやすいコーディングツールと思います。

□Anacondaの導入

◇Anacondaのダウンロード

早速、Anacondaを導入していきましょう。

Anacondaは以下サイトからダウンロードできます。
https://www.anaconda.com/
「Get Started」⇒「Download Anaconda installers」と選択し、WindowsOSの「64-Bit Graphical Installer」を選択します。
01.
win_anaconda_0102.
win_anaconda_02
03.
win_anaconda_03

◇Anacondaのインストール

インストールラーファイルをダウンロード後、ダブルクリックして、インストールを行っていきます。
基本的にデフォルトの設定値で進めていけばOKです。
01.
win_anaconda_0402.
win_anaconda_05
03.
win_anaconda_06
04.
win_anaconda_07

インストール先は、基本的にユーザー直下のフォルダとなるようです。
05.
win_anaconda_08
06.
win_anaconda_0907.
win_anaconda_11

◇パス設定

続いてパス設定を行います。
インストール時に、「Add Anaconda3 to my PATH enviroment variable」にチェックを入れて置いたら、こちらは不要かもしれません。
私は入れていなかったので、以下操作を行います。

1.Windowsスタートメニュー横の検索から「システム環境変数の編集」を入力し、ヒットした項目を選択します。
2.「環境変数」⇒「システム環境変数(S)」側の「Path」を選択し、「編集」ボタンを選択します。
3.新規を選び、Anacondaがインストールされたパスを入力し、「OK」ボタンを押します。
win_anaconda_12

4.システム環境変数設定後、PCを再起動します。
5.PC再起動後、Windowsスタートメニューの横の検索から「CMD」を入力し、コマンドプロンプトを起動します。
6.コマンドプロンプトで「Python -V」と入力し、Enterで以下のようにPythonのverが返ってくればOKです。
win_anaconda_12_2

Anacondaをインストールすることで、Pyhtonも導入されていることを確認します。

◇起動

Anacondaインストール後、起動していきましょう。
Anacondaは、Windowsスタートメニューを押して、「Anaconda Navigator(anaconda3)」が表示されるのでそれを選択することで起動できます。
win_anaconda_13
二回目以降も起動しやすいように、右クリックで「スタートメニューにピン留め」、さらにスタートメニューにピン留めしたものを右クリックし、
「その他」⇒「タスクバーにピン留め」でタスクバーにAnacondaのショートカットを設定することができます。
Anacondaを起動すると、以下のように表示されます。
win_anaconda_14

□Chrome/Edge/FireFoxドライバの導入

SeleniumでWebスクレイピング等行う場合、各ブラウザに用意されたドライバを用意します。
Chromeの場合は「Chrome driver」、Edgeの場合は「WebDriver」、FireFoxの場合は「geckodriver」ドライバを設定していきます。

◇Chrome

「Chrome verチェック」

まずChromeから設定していきます。
Chromeブラウザを使用されている方は、まずChromeのverを確認します。
Chromeを起動後、画面右上の「…」⇒「ヘルプ」⇒「Google Chromeについて」を選択します。
win_crome_01
Chromeのverチェックが走り、最新のverが表示されます。
私の場合は、以下「ver89.0.4389.82」となっていました。
win_crome_02

「Chrome Driver導入」

以下ページにアクセスします。
https://chromedriver.chromium.org/downloads
Chromeと同じverのChromeDriverを選択します。
win_crome_03

windowsの場合、「win32」を選択します。
win_crome_04
zipファイルをダウンロード後、解凍して、任意の階層に配置します。
今回、複数のdriverを使用するため、ユーザーフォルダの直下に「WebDriver」というフォルダを作り、各driverを格納しました。
私の場合、以下階層に格納しています。
C:\Users\sinsu\WebDrivers\ChromeDriver\Ver89\chromedriver.exe

◇Edge

「Edge verチェック」

Edgeの場合も同様となります。
まずは、Edge verを確認します。
Edgeブラウザ起動後、画面右上の「…」⇒「ヘルプとフィードバック」⇒「Microsoft Edgeについて」を選択します。
私の場合バージョンは、以下「ver89.0.774.45」となっていました。
win_edge_01

「Edge(WebDriver」導入」

以下ページにアクセスします。
https://developer.microsoft.com/ja-jp/microsoft-edge/tools/webdriver/
今回は、「Microsoft Edge」のリリース89、バージョン「x64」をクリックします。
win_edge_02
win_edge_03
driverダウンロード後、zipファイルを解凍し、ChromeDriverと同様に以下のように格納します。
C:\Users\sinsu\WebDrivers\EdgeDriver\V89\msedgedriver.exe

◇FireFox

「FireFox verチェック」

FireFoxも同様に、ver確認を行います。
右上の三本線の「Menu」⇒「ヘルプ」⇒「FireFoxについて」をクリックします。
win_firefox01
私の場合は、「ver 86.0」となっていました。
win_firefox02

「geckodriver」

以下のページにアクセスします。
https://github.com/mozilla/geckodriver/releases
FireFoxのdriverは、githubにある「geckodriver」をダウンロードします。
verは、FireFoxのverが最新である場合、「geckodriver」も最新のverをダウンロードします。
私がダウンロードしたverは「ver0.29」となっていました。
win_firefox03
ダウンロード後、以下のように格納します。
C:\Users\sinsu\WebDrivers\FirefoxDriver\V029\geckodriver.exe

□JupyterLabでの設定

続いて、JupyterLabを起動しスクリプトを書いていきましょう。

◇JupyterLabの起動

Anacondaを起動後、「JupyterLab」を選択し、起動します。
win_anaconda_14
「JupyterLab」の隣に、「Jupyter Notebook」というものがありますが、こちらも同じようにコーディングツールとなっていますが、
「JupterLab」の方が後発となっており、「Jupyter Notebook」よりもできることが増えています。
「Jupyter Notebook」は、今後「JupyterLab」に移行していくとの内容も見受けられます。

「JupyterLab」を起動したら、以下のような画面表示となります。
win_anaconda_14

◇新規作成

起動したら、画面右上の「File」⇒「New」⇒「Notebook」を選択します。
win_anaconda_01
その後、「Select Kernel」で、「Python3」を設定し、「Select」を押します。
win_anaconda_02
「Untitleed.ipynb」というファイルが作成され、こちらに記述していきます。
win_anaconda_03

◇コードの記述

「Untitleed.ipynb」ファイルにコードを試しに書いてみましょう。
セルと呼ばれる枠をクリック、以下のように入力してみます。
5+5
その後、画面上部の「▶」ボタンを押すか、Shift+Enterキーを押すことで、コードの実行を行えます。
win_anaconda_04
他にも、「-」「*」「/」といった演算子で計算式を書いて実行することもできます。

◇Seleniumライブラリのインストール

seleniumを使う際は、まずはライブラリをインストールします。
以下を記述します。

!pip3 install selenium

上記を入力し、実行すると、seleniumライブラリのインストールが行われます。
以下のように表示されればOKです。
win_anaconda_05

もし、installコマンドを実行している場合は、「Requirement already satisfied:・・・」と表示されます。
seleniumをインストールできたら、次はそれを使えるようにインポートします。

◇インポート

インポートでは以下を入力し読み込みます。
import selenium
from selenium import webdriver
win_anaconda_06

seleniumとWebdriverを利用できるようにインポートを行います。

◇各Driverのパス指定

続いて、Chrome、Edge、FireFoxのドライバのパスを設定します。
各Driverをパスを指定する場合は、excutable_pathを利用します。
ここで、driverのパスを指定する際、パスをそのまま書くと、以下のようにエラーが表示されます。
SyntaxError: invalid syntax

これを回避するには、「/」(円マーク)を一つ付け加えます。
私の場合、Chrome、Edge、FireFoxはそれぞれ以下のように記載しています。

・ChromeDriver
C:\\Users\\sinsu\\WebDrivers\\ChromeDriver\\Ver89\\chromedriver.exe
driver=webdriver.Chrome(executable_path=”C:\\Users\\sinsu\\WebDrivers\\ChromeDriver\\Ver89\\chromedriver.exe”)

・EdgeDriver
C:\\Users\\sinsu\\WebDrivers\\EdgeDriver\\V89\\msedgedriver.exe
edgedriver=webdriver.Edge(executable_path=”C:\\Users\sinsu\\WebDrivers\\EdgeDriver\\V89\\msedgedriver.exe”)

・FireFox
C:\\Users\\sinsu\\WebDrivers\\FirefoxDriver\\V029\\geckodriver.exe
Firefoxdriver=webdriver.Firefox(executable_path=”C:\\Users\\sinsu\\WebDrivers\\FirefoxDriver\\V029\\geckodriver.exe”)

JupyterLabでの入力値は、以下となっています。
win_anaconda_07

各ドライバはセルごとに記載しています。
それぞれ実行すると、Driverが起動します。
・Chrome
win_ChromeDriver

・Edge
win_edgedriver

・FireFox
win_geckodriver

セルで分けたのは、Webの自動操作を行う際、driverを指定した後は、同じ操作のスクリプトで実行することができます。

■最後に

今回は、Python seleniumのAnaconda、Webdriverの設定をご紹介いたしました。
次回は、ブラウザのサイト遷移、クリック、テキスト入力など、ご紹介していきたいと思います。

最後まで見て頂き、ありがとうございました。

 

サイトトップへ
https://susakiworks.com/

Selenium実践入門 ――自動化による継続的なブラウザテスト WEB+DB PRESS plus
Selenium実践入門

PythonでExcel、メール、Webを自動化する本
PythonでExcel、メール、Webを自動化

この記事が気に入ったら
いいね ! しよう

Twitter で
20210311_win_python_selenium_title
最新情報をチェックしよう!

SusakiWorks

SusakiWorksでは、ソフトウェアテスト、テスト自動化、業務効率、ビジネスに関する書籍、国内外のソフトウェアテストに関するニュース記事などをご紹介しています。ソフトウェアテストやQCに関する情報発信、および意識向上を推進していきます!