MAGAZINE
ルーターマガジン
chrome ヘッドレスの環境構築(Ubuntu編)
今回は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
まずは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
実行できるか確認
$ chromedriver -v ChromeDriver 2.37.544337 (8c0344a12e552148c185f7d5117db1f28d6c9e85)
このようにバージョンの表記が出たらchromedriverの設定は完了です。
※以降は、「chrome ヘッドレスの環境構築(Mac編)」と同様です。
まとめ
今回はUbuntu環境でのchrome ヘッドレスを用いたスクレイピング手法についてまとめました。普通のRubyを用いたスクレイピングとは違い、外部のプログラム(google chrome)を呼び出すプログラムなので、rubyのコードが合っていても呼び出しに失敗している場合などもあるので、ソースコードだけでなく環境変数等も確認するようにしましょう。 これから、クローラーを用いたクローリングや、ブラウザを用いたテストの自動化(RPA)を考えている人にも参考にしていただけたら幸いです。
CONTACT
お問い合わせ・ご依頼はこちらから