今回はchrome ヘッドレスの環境構築(Mac編)で説明できなかったUbuntuでchrome ヘッドレスを動かす方法について説明したいと思います。

用意するもの

  • Ubuntu

  • [オプション]Ruby(2.3.4)

chrome ヘッドレスの起動設定(Ubuntu)

必要なライブラリをインストール

$ sudo apt-get update
$ sudo apt-get install -y libappindicator1 fonts-liberation

chromeのインストール

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

※curlコマンドが使えない場合は、以下のコマンドでインストール

$ sudo apt-get install curl

chrome ヘッドレスの起動

ヘッドレス実行を試して見ましょう。

$ google-chrome --disable-setuid-sandbox --no-sandbox --headless --disable-gpu --dump-dom https://www.chromestatus.com/

ターミナル上にDOMツリーが表示されたら成功です。

Chrome ヘッドレスを用いたスクレイピング

ここからは、そのchrome ヘッドレスを使ってスクレイピングを行う方法を紹介します。

サンプルとして、Googleにログインしてユーザー名を取得するコードを紹介します。

chromedriverの設定

※chromedriverは更新されていくので、必要に応じてバージョン番号を変更してください(現在最新2.37) 最新バージョンの確認は以下のリンクにてできます。 https://sites.google.com/a/chromium.org/chromedriver/downloads

  1. まずはchromedriverをダウンロード

    #chromedriverを取得する
    $ curl -O https://chromedriver.storage.googleapis.com/2.37/chromedriver_linux64.zip
    $ unzip chromedriver_linux64.zip
    #chromedriverに実行権限を付与
    $ chmod +x chromedriver
    #chromedriverをパスの通っている場所に移動
    $ mv -f chromedriver /usr/local/share/chromedriver
    #シンボルの作成
    $ ln -s /usr/local/share/chromedriver /usr/local/bin/chromedriver
    $ ln -s /usr/local/share/chromedriver /usr/bin/chromedriver
    
  2. 実行できるか確認

    $ chromedriver -v
    ChromeDriver 2.37.544337 (8c0344a12e552148c185f7d5117db1f28d6c9e85)
    

    このようにバージョンの表記が出たらchromedriverの設定は完了です。

※以降は、「chrome ヘッドレスの環境構築(Mac編)」と同様です。

まとめ

今回はUbuntu環境でのchrome ヘッドレスを用いたスクレイピング手法についてまとめました。普通のRubyを用いたスクレイピングとは違い、外部のプログラム(google chrome)を呼び出すプログラムなので、rubyのコードが合っていても呼び出しに失敗している場合などもあるので、ソースコードだけでなく環境変数等も確認するようにしましょう。 これから、クローラーを用いたクローリングや、ブラウザを用いたテストの自動化(RPA)を考えている人にも参考にしていただけたら幸いです。