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

puppeteerってすごい便利だよね。
chromeが開発してるし、nodejsから簡単に操作できる。
チュートリアルみても、数行で動かせちゃうこの楽さ(*´∀`*)!!

これで動いちゃうらしいから、最高だーー!!と思うでしょ。
でも、実際チュートリアルを見ながらコード書いてみると
めちゃくちゃエラー、とにかくエラー(´・ω・`)。

公式のトラブルシューティングを追っかけても
解決しないことが多々あるようで。
今回は僕が引っかかったところの突破方法を残しておきます。

概要

広告

よくあるエラー

代表的なエラーとしてあるのが、

  • 権限が正しく設定されていない
  • --no-sandboxモードで起動していない。
  • 依存パッケージが不足している。

公式のトラブルシューティング

権限が正しく設定されていない

まず最初に権限の設定をしていない場合、さっさと変更しちゃいましょう。
workdirからchrome-linuxに移動してください

移動したらこの一行を実行してくださいな。

これで権限問題は解決します。

--no-sandboxモードで起動していない。

次によく見られるのが、--no-sandboxモードで起動していないことです。
これは、チュートリアルでは書いていないものの、基本的に書いたほうがいいところなので、
先ほどの、nodejsの方のコードを修正します。
launch()の中にargsを設定してください。

モードの変更はこれでオッケー。

依存パッケージが不足している。

最後に意外と多いのが依存パッケージ不足です。
chrome headressは結構使用するパッケージが多いです。
なので、一気にいれときましょ。

入れるの多いっ!!笑
これで基本的におーけーらしい。
問題は僕の環境ではこれじゃまるで解決しなかった。
結局chromeは起動せず(´・ω・`)
なんか解決策をさぐりに、chromeのgithubをごそごそ。ネットをごそごそ。

意外な原因: Headress-Chromeが古い

これだぁぁぁぁぁ!!
最終的に解決に繋がったのは、
最新のheadress-chromeをインストールすることでした。

最新のrpmを追加したことで問題なく起動するようになりました。

良かったよかった。



これで楽しいクローリングライフを満喫できるね!
じゃあね〜〜〜。