WSL2 + Ubuntu20.04 + Selenium4 + Python3 でスクリーンキャプチャする環境を構築

Webサイトのスクリーンキャプチャを自動化したく、現代の流行りを調べたらSeleniumを使うのがよさそうだったので、WSL2を使ってパパッと構築してみました。

環境
  • WSL2
  • Ubuntu 20.04
  • Python 3.8
目次

環境構築

まっさらなUbuntu 20.04にインストールしていきます。

STEP
pipのインストール

自動化を行うSeleniumはPython用パッケージインストーラーpipを使うので先にインストールします。

# インストール
sudo apt install python3-pip

# バージョン確認
pip --version
# pip 20.0.2 from /usr/lib/python3/dist-packages/pip (python 3.8)
STEP
Seleniumのインストール
# インストール
pip install selenium

# バージョン確認
pip list | grep selenium
# selenium 4.2.0

Seleniumバージョン4がインストールされました。
Seleniumのサンプルプログラムを色々見ていると、記述方法がバージョンで結構異なるようなので、プログラミング時に注意したほうがいいです。

STEP
Google Chromeのインストール

画面キャプチャをするにはブラウザが必要で、今回はGoogle Chromeを使用します。
インストール方法はいくつかありますが、本家サイトからインストーラーをダウンロードして作業します。

# ホームディレクトリに移動
cd

# ダウンロード
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb

# インストール(依存パッケージも同時にインストールされます)
sudo apt install ./google-chrome-stable_current_amd64.deb

# バージョン確認
google-chrome --version
# Google Chrome 103.0.5060.53

Google Chrome 103.0.5060.53 がインストールされました。

STEP
ChromeDriverのインストール

ChromeDriverはSeleniumからChromeを操作するために使用します。
インストール時の注意点は、先にインストールしたChromeのバージョン以下にする必要があります。

こちらもインストール方法はいくつかありますが、本家サイトからChromeのバージョン以下の物を探してダウンロードします。

今回はChromeと同じバージョン103.0.5060.53 のlinux用をダウンロードします。

# ダウンロード
wget https://chromedriver.storage.googleapis.com/103.0.5060.53/chromedriver_linux64.zip

zipファイルを解凍するにはunzipが必要なのでインストールします。
(初期状態のUbuntuでなければ殆どの場合インストール済みかもしれません)

# インストール
sudo apt install unzip

zipを解凍して実行ファイルを移動します。

# 解凍
unzip chromedriver_linux64.zip

# 移動
sudo mv chromedriver /usr/bin/

# バージョン確認
chromedriver -v
# ChromeDriver 103.0.5060.53
STEP
プログラムの作成

test.pyなどのファイル名で空のファイルを作成して以下のサンプルコードを貼り付けます。

# -*- coding: utf-8 -*-
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = Options()
options.headless = True
options.add_argument('--no-sandbox')

driver = webdriver.Chrome('chromedriver', options=options)
driver.get('https://google.com')
driver.implicitly_wait(10)
driver.save_screenshot('result.png')
driver.quit()
STEP
プログラムの実行

ターミナルからtest.pyを実行してresult.pngが作成されるか確認します。

python3 test.py

result.png が作成されたでしょうか。

もしかして下図のように日本語が文字化けしていますか?

文字化けしている場合は日本語フォントをインストールしましょう。

# インストール
sudo apt install fonts-ipafont-gothic

再度実行すると日本語が表示されるはずです。

WSL2 + Ubuntu20.04だとこのような感じで環境構築ができました!
あとはSeleniumの仕様書やサンプルコードとにらめっこです。

一応WSL1でも試したところ、Chromeの起動でスタックするようで環境構築は難しいのかもしれません。

  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次