Help us understand the problem. What is going on with this article?

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

概要

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

手順

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

仮想マシンを起動

  • EC2 より、Ubuntu Server 18.04 LTS (HVM) 64-bit を起動します
  • sshログインして確認
$ cat /etc/issue
Ubuntu 18.04.4 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も合わせてインストールされるようです

$ which chromedriver
/usr/bin/chromedriver

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

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

sudo apt install unzip

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

wget https://ipafont.ipa.go.jp/IPAexfont/IPAexfont00401.zip
unzip IPAexfont00401.zip -d ~/.fonts/

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

fc-cache -fv

fc-cacheコマンドの結果を確認(ユーザホーム部分)

(snip)
/home/ubuntu/.fonts/IPAexfont00401: caching, new cache contents: 2 fonts, 0 dirs
(snip)
fc-cache: succeeded

サンプルソース記述

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://ja.wikipedia.org/wiki/Google_Chrome')
driver.save_screenshot('./screenshot.png')
driver.quit()

実行

python3 getss.py

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

日本語も正しく表示されることを確認できます(アラビア文字?などは表示できていない)

screenshot.png

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした