シェアする

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

Dockerimage_HeadressChrome_python3_nodejs8

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

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

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

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

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

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

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

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

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

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


広告

用意したDockerImage

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

  • CentOS7
  • Headless Chrome
  • Python3.5
  • NodeJS8


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

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

起動方法

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

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

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




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