0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

chromedriver のダウンロードスクリプト(macOS, Linux)

Last updated at Posted at 2022-08-24

概要

Selenium などで Chrome を動かす際、chromedriver が必要になります。
ローカルにダウンロードすることが多いのでスクリプトとしてまとめました。

記事後ろにコメントとカスタマイズ可能な点を記載します。

スクリプト

curl, unzip に依存あります。

#!/bin/bash -xe

SCRIPT_DIR=$(dirname "$0")
SCRIPT_DIR=$(cd "${SCRIPT_DIR}"; pwd)
cd "${SCRIPT_DIR}"

CHROME_DRIVER_VERSION=$(curl -s http://chromedriver.storage.googleapis.com/LATEST_RELEASE)
MAC64_FILE=chromedriver_mac64.zip
MAC64_URL="http://chromedriver.storage.googleapis.com/${CHROME_DRIVER_VERSION}/${MAC64_FILE}"
LINUX64_FILE=chromedriver_linux64.zip
LINUX64_URL="http://chromedriver.storage.googleapis.com/${CHROME_DRIVER_VERSION}/${LINUX64_FILE}"
DRIVER_BIN_FILE=./chromedriver

if [ "$(uname)" = "Darwin" ]; then
	CHROME_DRIVER_FILE=${MAC64_FILE}
	CHROME_DRIVER_URL=${MAC64_URL}
else
	CHROME_DRIVER_FILE=${LINUX64_FILE}
	CHROME_DRIVER_URL=${LINUX64_URL}
fi

echo $CHROME_DRIVER_FILE

rm -rf ${DRIVER_BIN_FILE}
curl -O -L "${CHROME_DRIVER_URL}"
unzip ${CHROME_DRIVER_FILE}
chmod u+x ${DRIVER_BIN_FILE}
rm ${CHROME_DRIVER_FILE}

各コメント

配置場所

SCRIPT_DIR=$(dirname "$0")
SCRIPT_DIR=$(cd "${SCRIPT_DIR}"; pwd)
cd "${SCRIPT_DIR}"

このスクリプトはファイルにして扱うことを前提にしています。コピペだけで実行するならこの行はいらないです。

スクリプトの存在する位置で作業するようにしています。別の位置にしたい場合は cd を書き換えてください。

シェルでの文字列の扱いは ShellCheck を利用して気をつけています。

chromedriver バージョンの指定

CHROME_DRIVER_VERSION=$(curl -s http://chromedriver.storage.googleapis.com/LATEST_RELEASE)

chromedriver の最新のバージョンコードを取得しています。最新とは言っても Chrome の Official Build の最新です。
LATEST_RELEASE_105 などにキーを変更することでバージョンを変えられます。キーは、 http://chromedriver.storage.googleapis.com のXMLを見て確認できます。

バージョンを固定したいなら直値にします。

$ curl -s http://chromedriver.storage.googleapis.com/LATEST_RELEASE
104.0.5112.79
$ curl -s http://chromedriver.storage.googleapis.com/LATEST_RELEASE_105
105.0.5195.19

OSごとの差分吸収

MAC64_FILE=chromedriver_mac64.zip
MAC64_URL="http://chromedriver.storage.googleapis.com/${CHROME_DRIVER_VERSION}/${MAC64_FILE}"
LINUX64_FILE=chromedriver_linux64.zip
LINUX64_URL="http://chromedriver.storage.googleapis.com/${CHROME_DRIVER_VERSION}/${LINUX64_FILE}"
DRIVER_BIN_FILE=./chromedriver

if [ "$(uname)" = "Darwin" ]; then
	CHROME_DRIVER_FILE=${MAC64_FILE}
	CHROME_DRIVER_URL=${MAC64_URL}
else
	CHROME_DRIVER_FILE=${LINUX64_FILE}
	CHROME_DRIVER_URL=${LINUX64_URL}
fi

OSごとにファイル名がちがうので吸収しています。
URLには chromedriver のバージョンコードを含めています。

実行ファイル名はどちらも chromedriver で固定です。

実行部分

rm -rf ${DRIVER_BIN_FILE}
curl -O -L "${CHROME_DRIVER_URL}"
unzip ${CHROME_DRIVER_FILE}
chmod u+x ${DRIVER_BIN_FILE}
rm ${CHROME_DRIVER_FILE}

作業ディレクトリにて以下を行います。

  • 古いものがあれば削除
    • -rf にすることでファイルがなくてもエラーにならない。雑でもいいときに使う。
  • ダウンロード
    • リダイレクトするので -L を付けている。
  • 展開
  • 実行権限付与
  • zip ファイル削除

実行後 chromedriver が利用できます。

0
0
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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?