目的
Windows10 + Python3 + selenium + chromedriver で headless chrome を試してみる
Windows10 + Python3 + Selenium4でChromeとEdgeをheadlessで起動してみる はこちら
モジュールのインストール
seleniumのインストール
pip3 install selenium
chromedriver-binaryのインストール
pip3 install chromedriver-binary
を実行すると、最新版のモジュールがインストールされる
Successfully installed chromedriver-binary-84.0.4147.30.0
サンプルを実行すると以下のエラーメッセージが発生する(かもしれない)
selenium.common.exceptions.SessionNotCreatedException: Message:
session not created: This version of ChromeDriver only supports Chrome version 84
エラーが発生した場合(インストール前に確認して実行するわなぁ・・・)
※apt search みたいな機能はないのかな??
※pip3 search だと Search PyPI for packages なんですよね
Chromeのバージョンを確認する
Chrome -> ヘルプ からバージョンをコピペ
今日の時点では バージョン: 83.0.4103.61(Official Build)(64 ビット)
バージョンを指定してインストールする
pip3 install chromedriver-binary==83.0.4103.61
ERROR: Could not find a version that satisfies the requirement chromedriver-binary==83.0.4103.61
(from versions: 2.29.1, 2.31.1, 2.33.1, 2.34.0, 2.35.0, 2.35.1, 2.36.0, 2.37.0, 2.38.0,
2.39.0, 2.40.1, 2.41.0, 2.42.0, 2.43.0, 2.44.0, 2.45.0, 2.46.0, 70.0.3538.16.0, 70.0.3538.67.0,
70.0.3538.97.0, 71.0.3578.30.0, 71.0.3578.33.0, 71.0.3578.80.0, 71.0.3578.137.0, 72.0.3626.7.0,
72.0.3626.69.0, 73.0.3683.20.0, 73.0.3683.68.0, 74.0.3729.6.0, 75.0.3770.8.0, 75.0.3770.90.0,
75.0.3770.140.0, 76.0.3809.12.0, 76.0.3809.25.0,76.0.3809.68.0, 76.0.3809.126.0, 77.0.3865.10.0,
77.0.3865.40.0, 78.0.3904.11.0, 78.0.3904.70.0, 78.0.3904.105.0, 79.0.3945.16.0,79.0.3945.36.0,
80.0.3987.16.0, 80.0.3987.106.0, 81.0.4044.20.0, 81.0.4044.69.0, 81.0.4044.138.0, 83.0.4103.14.0,
83.0.4103.39.0, 84.0.4147.30.0)
ERROR: No matching distribution found for chromedriver-binary==83.0.4103.61
なので、Chromeのバージョンに近そうな 83.0.4103.39.0 を指定してインストールする
※先にChromeDriver - WebDriver for Chromeで対象バージョンを確認(ですよね・・)
pip3 install chromedriver-binary==83.0.4103.39.0
もしくはChromeDriver - WebDriver for Chromeより
ChromeDriver 83.0.4103.39 をDLして以下に上書きする(Pythonのインストール先に依存)
C:\Dev\tool\Python\Python38\Lib\site-packages\chromedriver_binary\chromedriver.exe
サンプルコード
# Windows Add env PYTHONIOENCODING = UTF-8 & restart vscode
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import chromedriver_binary
# ブラウザーを起動
options = Options()
# インストール先の変更?
# options.binary_location = 'C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe'
options.binary_location = 'C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe'
options.add_argument('--headless')
driver = webdriver.Chrome(options=options)
# Google検索画面にアクセス
driver.get('https://www.google.co.jp/')
# htmlを取得・表示
html = driver.page_source
print(html)
# ブラウザーを終了
driver.quit()
参考にしたサイトはこちら
ChromeDriver - WebDriver for Chrome
【Python】SeleniumでHeadless Chromeを使おう
[selenium]chromedriverのバージョンエラーが出たときの対処法
chromedriver-binary(Python)をChromeのバージョンに合わせてインストールする@Windows
よく使うpipコマンド
Windows 10 Pro x64 + Python3 で selenium + chromedriver を少し試してみる
Selenium Python(ABC順)