Pythonインストール
Python公式から最新版インストーラをダウンロードしてインストールしてください。参考はこちら。
インストールが終わったら、以下のコマンドでバージョン確認します。
python -v
「コマンドが見つからない」と出ていれば、python.exeファイルのあるフォルダーパスを環境変数に設定し、コマンドプロンプトを再起動して上記コマンドを実行してください。
パッケージのインストール
pip install selenium
# chromeバージョンが94.・・・の場合のドライバをインストール
pip install chromedriver-binary==94.*
chromeバージョンの確認方法はこちら
環境構築はこれだけです。
スクリプト
新規フォルダーを作成し、以下のファイルを作成してください。
# -*- coding: utf-8 -*-
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import chromedriver_binary
options = Options()
# linux上で動かすときは次の2つも実行してください。
# options.add_argument('--headless')
# options.add_argument('--no-sandbox')
driver = webdriver.Chrome(options=options)
driver.get('https://example.com')
# アクセス先のURLを出力
print(driver.current_url)
driver.quit()
実行してみましょう。
python <作成したフォルダ>/test_selenium.py
実行結果
https://example.com
上記のような結果になれば正常に実行できています。
chromedriver-binaryのバージョンを更新する
Chromeのバージョンって結構な頻度で更新されると思うのですが、それに伴ってドライバのバージョンも更新する必要があるのです。バージョンが古かったりすると、エラーが出ることがあります。
ただ、ドライバのバージョンを更新するにあたり現在使用しているchromeのバージョンを確認する必要があったりしてめんどくさいのでバッチファイル化しておきたいです。
バッチファイルは以下のように作成します。
どこかに専用のフォルダを作成し、そこに置いてください。
@echo off
setlocal
cd %~dp0
@REM %LocalAppData%のところは自身の環境に合わせて設定する必要があります。
dir /B /O-N "%LocalAppData%/Google/Chrome/Application" | findstr "^[0-9]." > "chrome_version.txt"
@REM chromeバージョンのhead部分をテキストファイルに出力
for /f "tokens=1 delims=:." %%a in (chrome_version.txt) do echo %%a> chrome_version_h.txt
@REM テキストファイルからchromeバージョンのheadを変数に入れる
set /p version_head= 0<"chrome_version_h.txt"
pip install chromedriver-binary=="%version_head%.*"
**%LocalAppData%
変数だけは自身の環境に合わせて書き換える必要があります。**これはC:\Users\<ユーザー名>\AppData\Local
を既定値として持っている環境変数です。
自分の場合、Google\Chrome\Application
がC:\Users\<ユーザー名>\AppData\Local
直下にあるので%LocalAppData%\Google\Chrome\Application
になりますが、環境によってはそうでない場合もあります。
なので自身の環境でGoogle\Chrome\Application
がどのフォルダにあるか検索したうえで、そのフォルダパスを既定値として持っている環境変数に書き換えましょう。
環境変数はこちらを参照してください。
設定後、以下のコマンドで更新ができるか確認してください。
update_driver.bat
最新のときの実行結果
Requirement already satisfied: chromedriver-binary==94.* in c:\users<ユーザー名>\appdata\local\programs\python\python39\lib\site-packages (94.0.4606.61.0)
こんな感じの結果が返ってきたら正常です。
これでドライバを随時更新しましょう。
Selenium
この記事では細かくは説明しませんが、Seleniumの使い方がまとめられているサイトをいくつかご紹介します。
・よくある操作なら
Python + Selenium で Chrome の自動操作を一通り
・要素の取得方法なら
PythonのSeleniumで特定の要素を指定して取得する
・Xpathの取得方法なら
ChromeでXPathを取る・検証する
・Window切り替えなら
[Python]Seleniumで操作するウィンドウを切り替える2つの方法を紹介
・Frame切り替えなら
[Python] seleniumのフレーム移動(switch_to_frame)
・ファイルアップロードなら
PythonのSeleniumでファイルアップロードする方法
・困ったときに
Seleniumクイックリファレンス
・Selenium4の新機能
【Python】Selenium4の新機能まとめ
まとめ
Seleniumの環境構築に困っている方はぜひ試してみてください。