LoginSignup
13
11

More than 1 year has passed since last update.

[Python] Windows環境でseleniumを動かすまで

Last updated at Posted at 2021-10-19

Pythonインストール

Python公式から最新版インストーラをダウンロードしてインストールしてください。参考はこちら

インストールが終わったら、以下のコマンドでバージョン確認します。

cmd
python -v

「コマンドが見つからない」と出ていれば、python.exeファイルのあるフォルダーパスを環境変数に設定し、コマンドプロンプトを再起動して上記コマンドを実行してください。

パッケージのインストール

cmd
pip install selenium
# chromeバージョンが94.・・・の場合のドライバをインストール
pip install chromedriver-binary==94.*

chromeバージョンの確認方法はこちら

環境構築はこれだけです。

スクリプト

新規フォルダーを作成し、以下のファイルを作成してください。

test_selenium.py
# -*- 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()

実行してみましょう。

cmd
python <作成したフォルダ>/test_selenium.py

実行結果
https://example.com

上記のような結果になれば正常に実行できています。

chromedriver-binaryのバージョンを更新する

Chromeのバージョンって結構な頻度で更新されると思うのですが、それに伴ってドライバのバージョンも更新する必要があるのです。バージョンが古かったりすると、エラーが出ることがあります。

ただ、ドライバのバージョンを更新するにあたり現在使用しているchromeのバージョンを確認する必要があったりしてめんどくさいのでバッチファイル化しておきたいです。

バッチファイルは以下のように作成します。
どこかに専用のフォルダを作成し、そこに置いてください。

update_driver.bat
@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\ApplicationC:\Users\<ユーザー名>\AppData\Local直下にあるので%LocalAppData%\Google\Chrome\Applicationになりますが、環境によってはそうでない場合もあります。

なので自身の環境でGoogle\Chrome\Applicationがどのフォルダにあるか検索したうえで、そのフォルダパスを既定値として持っている環境変数に書き換えましょう。
環境変数はこちらを参照してください。

設定後、以下のコマンドで更新ができるか確認してください。

cmd
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の環境構築に困っている方はぜひ試してみてください。

13
11
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
13
11