Posted at

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