0
1

More than 3 years have passed since last update.

備忘用 Chrome+ChromeDriver+selenium+pythonの環境構築

Posted at

経緯

元々社内でVBAからIEのオートパイロットで特定のWebページを取り込んでDBに保存するような処理を書いてました。
数年はそれで大丈夫だったのですが、昨年末にWindows7の保守期間が切れ、Windows10にアップデートを行った後からVBAでのIEのオートパイロットの挙動がを使用とすると色々と制限が掛かってものすごくやりづらくなってしまいました。(セキュリティのダイアログとか凄く特殊)。
一番の原因は、VBAで掴んだIEのオブジェクトがすぐに行方不明になり「オブジェクトが見つかりません」とかなって、立ち往生してしまったのがきっかけです。
ほんと意味がわかりません。
なので、VBAで今更苦労してやるのであれば、全部書き直す気で別の手法でやった方が楽かもしれないと今更ながらChromeとseleniumでオートパイロットしてみようと思いました。
ちなみに私はpythonにも余りなじみがありません(爆)
でもさすがに少しくらい書けないと恥ずかしいですよね・・。

参考記事

以下の記事を参考に、自分用にメモってます。ほとんど同じ部分もあります。
ご了承下さいm(_ _)m
Python + Selenium で Chrome の自動操作を一通り

Chromeのインストール

https://www.google.co.jp/chrome/ からインストールします。

ChromeDriverの設置

ChromeDriverを設置しますが、インストールしたChromeのバージョン毎にモジュールが違うので、まずはChromeのバージョンを[Chromeメニュー]→[ヘルプ]→[Google Chromeについて]で、確認しておきます。
Chromeバージョン.png

Chrome Driverのページに行き、上で確認したバージョン用のChrome Driverのダウンロードページに行きます。
chromedriverページ.png
ここでは「ChromeDriver 81.0.4044.69」になります。

ダウンロードのページでは各プラットフォーム用のモジュールがあるので、自分の環境に合ったものをダウンロードします。
chromedriverページ_2.png
私はWindowsなので、「chromedriver_win32.zip」でした。

ダウンロードしてきたzipはwindows用であれば解凍するとchromedriver.exeが出てくるので、それを任意のフォルダに置きます。
余り深い階層のフォルダに置くと、プログラムでパスを記述する時に長くなって嫌なので、私の場合は超簡単にC:\app\chromedriver\の下に置きました。
chromedriver_設置.png
この状態で次はpythonをインストールします。

pythonのインストール

pythonのwebページに行って、pythonをダウンロードします。
python1.png
赤線部分のリンクから、最新バージョンのページへ移動します。
そのページの下の方に「Files」という項目があるので、Windowsは32bit番の場合は、「Windows x86~」、64bit版は「Windows x86-64~」をダウンロードします。赤丸はそれぞれの自己実行形式のインストーラー版になります。
インストーラーが嫌いな人はzip版もありますのでそのあたりはお好きにどうぞ。
python2.png
インストーラー版の方で説明を続けますが、インストーラーを実行すると、以下のような画面になるので、コマンドラインからコマンドを実行する時のために「Add Python 3.8 to PATH」にチェックを入れてパスを通すようにしておきます。
python3.png
その後、「Install Now」をクリックし、インストールを開始します。

インストール中
python4.png

以下の画面がでたらインストール終了です。
python5.png

seleniumのインストール

seleniumのインストールはpipで行います。

C:\Users\hoge> pip install selenium
Collecting selenium
  Downloading https://files.pythonhosted.org/packages/80/d6/4294f0b4bce4de0abf13e17190289f9d0613b0a44e5dd6a7f5ca98459853/selenium-3.141.0-py2.py3-none-any.whl (904kB)
    100% |████████████████████████████████| 911kB 6.0MB/s
Collecting urllib3 (from selenium)
  Downloading https://files.pythonhosted.org/packages/e1/e5/df302e8017440f111c11cc41a6b432838672f5a70aa29227bf58149dc72f/urllib3-1.25.9-py2.py3-none-any.whl (126kB)
    100% |████████████████████████████████| 133kB 7.9MB/s
Installing collected packages: urllib3, selenium
Successfully installed selenium-3.141.0 urllib3-1.25.9
You are using pip version 19.0.2, however version 20.0.2 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.
C:\Users\hoge>

最初にインストールした直後にやると、pipをアップグレードしろみたいなメッセージが出たので、ついでに書かれている通りpipのアップグレードをやっときました。

C:\Users\hoge> python -m pip install --upgrade pip
Collecting pip
  Downloading https://files.pythonhosted.org/packages/54/0c/d01aa759fdc501a58f431eb594a17495f15b88da142ce14b5845662c13f3/pip-20.0.2-py2.py3-none-any.whl (1.4MB)
    100% |████████████████████████████████| 1.4MB 5.4MB/s
Installing collected packages: pip
  Found existing installation: pip 19.0.2
    Uninstalling pip-19.0.2:
      Successfully uninstalled pip-19.0.2
Successfully installed pip-20.0.2
C:\Users\hoge>

これで、インストール関係は大体終わりです。

Chrome Driverのパスを通しておく

[コンピュータ]→[右クリックメニュー]→[プロパティ]で、コントロールパネルのシステムのウィンドウを表示させ、左側の「システムの詳細設定」をクリック
system.png

システムのプロパティ画面が表示されるので「環境変数」をクリック
system_property.PNG

環境変数のウィンドウが出るので、画面下部のシステム環境変数の「Path」の部分をくりっくして選択し、下の「編集」ボタンをクリック
env_val.PNG

環境変数ウィンドウが出るので「新規」ボタンをクリック
env_val_edit.PNG

一番下の所に入力項目が追加されるので、「C:\app\chromedriver」を入力、確定します。
env_val_add.PNG
最後に「OK」ボタンをクリック。あとは各画面を閉じていって終了です。

以降で表示されるコマンドプロンプト画面ではchromedriver.exeへのパス通った状態になります。

Chromeのオートパイロットのテスト

Chromeのウィンドウを出さずにやる非headlessモードというのもあるのですが、わかりづらいので、まずは一番単純なテストでChromeのウィンドウを出して、閉じるというのをやります。

autopilot1.py
import time
from selenium import webdriver

driver = webdriver.Chrome()
driver.get('https://www.google.com/')
time.sleep(5)
driver.quit()

これは、Googleのページを開いて5秒後に閉じて終了するだけのプログラムですが、上記のプログラムをautopilot.pyという名前で保存し、コマンドプロンプトでそのautopilot.pyのあるパスで以下を入力します。

C:\Users\hoge> python autopilot.py

これで、Chromeが開き、Googleのサイトが開き、5秒後にChromeが閉じれば成功です。

最低限の準備はこれで終了です。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1