Jupyterlab×Selenium

<タイトル> Jupyterlab×Selenium

2025年06月10日 2025年06月10日 カテゴリ: 環境構築

Jupyter側からSelenium操作を可能にする

JupyterLabからSeleniumを利用してブラウザ操作を行う環境をDockerコンテナで環境構築して、最終的にはローカル環境を汚さず、再現性のあるスクレイピング・スクリプトファイルの開発ができるようにする。

仮想環境からSeleniumの操作を実現するには、「Google Chrome」と「chromedriver」をバージョンを揃えてインストールする必要がある。

本記事では、dockerコンテナを立ち上げる度にバージョンがズレて操作できなることを防ぐために、「バージョンを双方一致させる」コーディングを試みた過程をメモしている。

#Dockerfile:共通部分

# ChromeとChromedriverのバージョンを一致させてダウンロードするため

RUN apt-get update && apt-get install -yq --no-install-recommends \
    gnupg \
    jq && \
    apt-get clean && rm -rf /var/lib/apt/lists/*
  •  ChromeとChromedriverのバージョンを一致させてダウンロードするため:jq

#Dockerfile:Google Chrome

# ”google-chrome-stable --version"

RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add && \
    echo 'deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main' | tee /etc/apt/sources.list.d/google-chrome.list && \
    apt-get update && \
    apt-get install -y google-chrome-stable
  • Google Chrome の安定版(Stable)を Linux 環境にインストールする

#Dockerfile:ChromeDriver

# ”chromedriver --version"

RUN mkdir -p /opt/chrome && \
    CHROME_VERSION=$(google-chrome-stable --version | awk '{print $3}' | awk -F'.' '{print $1"."$2"."$3}')".0" && \
    DRIVER_VERSION=$(curl -s "https://googlechromelabs.github.io/chrome-for-testing/known-good-versions-with-downloads.json" | \
                     jq -r --arg CHROME_VERSION "$CHROME_VERSION" '.versions[] | select(.version==$CHROME_VERSION) | .downloads.chromedriver[] | select(.platform=="linux64") | .url') && \
    wget -q -O /opt/chrome/chromedriver-linux64.zip "$DRIVER_VERSION" && \
    unzip /opt/chrome/chromedriver-linux64.zip -d /opt/chrome && \
    rm /opt/chrome/chromedriver-linux64.zip && \
    mv /opt/chrome/chromedriver-linux64/chromedriver /opt/chrome/chromedriver
# ChromeDriver をパスに追加
ENV PATH="/opt/chrome:$PATH"
  • Google Chrome のバージョンと一致する ChromeDriverを「公式 JSON API」から自動取得する

まとめ

これらの構成要素を上手くインストールできていると、仮想環境のJupyter側から、Seleniumスクリプトファイルの作成と実行ができる。ただし、ChromeとDriver双方のバージョンを一致させてインストールしないと上手く実行できないため注意すること。



コメント(一覧)

コメント(入力画面)

空港MAP(#WIKI)
※現在の時刻 週間天気予報 (東京)
バックナンバー(年別)