Python
Chrome
Selenium
EC2
headless

EC2 UbuntuでGoogle Chromeをヘッドレス実行してスクリーンショットを採取する手順

More than 1 year has passed since last update.

概要

  • Google Chromeをヘッドレス実行してスクリーンショットを採取する
  • AWS EC2のUbuntuを利用する
  • Python + Selenium + ChromeDriver

手順

コマンドのみを記述していますが、結果も確認する場合は $ commandのようにプロンプト付きで記述します

仮想マシンを起動

  • EC2 より、Ubuntu Server 16.04 LTS (HVM) 64-bit を起動します
  • sshログインして確認
$ cat /etc/issue
Ubuntu 16.04.2 LTS \n \l

作業用ディレクトリ

  • home直下に src とします(適当)
  • 基本的にこのディレクトリをカレントとして作業します
mkdir src
cd src

Google Chromeをインストール

debパッケージをダウンロードしてインストール

wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i google-chrome-stable_current_amd64.deb

依存モジュールをaptでインストール

sudo apt update
sudo apt -f install -y

インストール確認

$ which google-chrome
/usr/bin/google-chrome

Seleniumをインストール

aptでインストール

sudo apt install python3-selenium

ChromeDriverをインストール

その前に unzip をインストール

sudo apt install unzip

ダウンロードしてパスの通ったディレクトリへコピー

wget https://chromedriver.storage.googleapis.com/2.31/chromedriver_linux64.zip
unzip chromedriver_linux64.zip -d ~/bin/

確認

$ which chromedriver
/home/ubuntu/bin/chromedriver

日本語フォントをインストール(IPA)

ダウンロードして展開(ファイル名指定する)

wget --content-disposition IPAfont00303.zip http://ipafont.ipa.go.jp/old/ipafont/IPAfont00303.php
sudo unzip IPAfont00303.zip -d /usr/share/fonts/

フォントキャッシュクリア

fc-cache -fv

サンプルソース記述

getss.py
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = Options()
options.binary_location = '/usr/bin/google-chrome'
options.add_argument('--headless')
options.add_argument('--window-size=1280,1024')

driver = webdriver.Chrome('chromedriver', chrome_options=options)

driver.get('https://www.google.co.jp/search?q=chrome')
driver.save_screenshot('/tmp/screenshot.png')
driver.quit()

実行

python3 getss.py

結果:取得したスクリーンショット画像

(縮小しています)

screenshot.png