Centos7にHeadless Chrome環境のDocker Imageを作った。

クローラーって便利だよね。
Web上のデータを集めるときにササッとクローリングできるとすごく楽です。

概要

広告

CentOS7にクローラー用のHeadlessブラウザをインストールしたい!

しかし、クローラーを作るのって結構大変です。
なにが大変かって、その環境構築の面倒くささ。

昔はPhantomJS(QtWebKitをベースにしたヘッドレスブラウザ)を使えば、
yumで簡単に入るしそれなりに良かったけど、
今では開発がほぼ止まって今後は使い物になりません。

Brave, Edgeが相次いでchromiumを採用した今では
HeadlessChrome(Blinkをベースにしたヘッドレスブラウザ)を使わない手はありません。

HeadressChromeの開発者は下記のように言っています。

ヘッドレス Chrome は PhantomJS に似ています。どちらもヘッドレス環境での自動化テストに使われます。大きな違いは、PhantomJS が古い WebKit を使用するのに対し、ヘッドレス Chrome は最新版の Blink を使用するということです。

https://developers.google.com/web/updates/2017/04/headless-chrome?hl=ja

ただ問題なのがこのchromium
環境構築でまあつまづきやすいです。
PuppeteerやHeadresChromeの公式見ても、○iitaみても
基本的にHeadressChromeを設定するので一苦労です。

Centos7でnodejs, Puppeteerを使えるようにする。

ライブラリは足りないし、権限で起動しないしモードがおかしいし、
クローラーや自動テストのコードを書く人にとって
こんなめんどくさいのはやってられません。

てなわけでDockerImageにしてしまおう1!


クローラー用Headless Chrome入りDockerImage

用意したDockerImageには下記環境を作ってあります。

DockerImageにインストール・設定済みの項目

  • CentOS7
  • Headless Chrome
  • Python3.5
  • NodeJS8


NodeJSもPythonも入ってあるので
Seleniumもすぐ使えるし、Puppeteerもすぐに使えます。

HeadlessChromeを使うけど、PuppeteerかSeleniumかは決めてない。
PythonもNodeJSも使う。って人には最適のイメージです。

HeadlessChrome入りDockerImageの起動方法

そのまま起動しても動きますが、
カレントのワークスペースをマウントするのがいいかと思います。

python seleniumはpipでインストールしていますが、
puppeteerは入れてませんので
npm install --save puppeteer
などでインストールしてください。

一点、Python3.5はyumを通してインストールしているので
実行の際にはpythonではなくpython3.5と打つようにしてください。




ではでは素敵なクローリングライフを。
じゃあね〜〜〜。