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

用意するもの

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

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

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

$ sudo yum install -y libX11 GConf2 fontconfig

設定ファイルの記述 /etc/yum.repos.dディレクトリに「google-chrome.repo」というファイルを作成し、以下の内容を記述する

[google-chrome]
name=google-chrome
baseurl=http://dl.google.com/linux/chrome/rpm/stable/x86_64
enabled=1
gpgcheck=1
gpgkey=https://dl.google.com/linux/linux_signing_key.pub

yumをアップデート

$ sudo yum update

chromeのインストール

$  yum install google-chrome-stable

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を取得する
    $ wget https://chromedriver.storage.googleapis.com/2.37/chromedriver_linux64.zip
    $ unzip chromedriver_linux64.zip
    $ sudo mv chromedriver /usr/local/bin/
    $ sudo chown root:root /usr/local/bin/chromedriver
    
  2. 実行できるか確認

    $ chromedriver -v
    ChromeDriver 2.37.544337 (8c0344a12e552148c185f7d5117db1f28d6c9e85)
    

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

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

まとめ

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