[Nodejs] クローリングシステム構築 #1.Spookyjsの環境設定

halloween-1751901_1280
LINEで送る
Share on GREE
Share on LinkedIn

仕事をするにも、Webから情報を集めてきたり、特定のサイトの更新情報を見つけに行ったり、データが置いてあるページから数値などをコピペしたりする作業は実はマクロ化して、自動的にPCに行わせたほうが効率的でしょう。
これは以前にも記事に書いた「RPA」という手法で、こうした思考を持っている人が、仕事をどんどん数多くこなせるようになれるわけです。
RPAのもたらす未来

そして、それを実現させる方法は、ブラウザの機能拡張や、Selenium、アプリケーション開発・・・など、色々なやり方が存在しますが、以下のポイントを考慮して、今回はMacでDockerを使って、NodejsのSpookyjsライブラリで構築して、実運用できるようにしてみたいと思います。

【要件定義】
・手元のノートPC(mac)で手軽に使いたい。
・初期構築に大規模な開発を行いたくない。
・WEBページと親和性の強いJavascriptを内部で扱えるようにしたい。
・仕事でも、自宅でも使いたいので、手元のノートPCじゃなくても環境を移行できるようにしたい。

環境想定

以前にSpookyjsの構築記事を書いたのですが、時間が立っているのと、Dockerベースで環境構築を行いたかったので、改めて手順を残したいと思います。
サーバーサイドで画面キャプチャ #その4 SpookyJS

ノートPC

MacOSX 10.12.4 Sierra
これは、会社でも自宅でも使っているのと、windowsでは色々な制限が入ってしまうので、とりあえずこの条件にしますが、
下記のDocker環境が別OSで構築出来る場合は、Macでなくても、同一環境が可能です。

Docker

別環境にOSごとコンテナとしてコピーできてしまうお手軽さがあり、VertualBoxよりも軽い事と、Linuxサーバーと親和性が高い事で、
あえてDocker構築にします。
特にDockerである必要はないので、VirtualBoxやVMWware、直接のLinuxOSでも問題ないと思います。
ただ、今回はUbuntuベースで作っていくので、CentOS系の場合は、若干手順が違う箇所があるので、その点は自己責任で行ってください。

OS内部構造

・Ubuntu 16.04.1
・Nodejs v4.2.6
・Phantomjs 2.1.1
・Casperjs 1.1.4
・Spookyjs 1.8

これらのバージョンは今現在のインストール環境にあるものを抜き出しただけなのですが、個人的にバージョン依存させたくないので、どれも最新バージョンで構築してもいいようにしたいと思いますが、書くライブラリの仕様が大きく変わった場合はご了承ください。

環境構築手順

MacにDockerをインストール

Dockerのインストールも以前に記事書いてあるので、そちらを参照してください。
Mac版Dockerを使って開発環境の構築

Nodejsインストール

通常のインストールは下記で問題ないです。

最新版のインストールまたは、特定バージョンのインストールにこだわりたい場合は、nvmを使ってインストールしましょう。

ただし、Dockerを使っている場合、コンテナを再起動するたびに、「source ~/.nvm/nvm.sh」コマンドを実行しないといけないので、通常のaptインストールをオススメします。
そして、npmはnodejsのバージョンに合わせて対象のバージョンがインストールされるようです。

phantomjsとcasperjsのインストール

これらのインストールは下記の3パターン存在するようです。

1. apt-getでインストール
2. npmでインストール
3. ソースコードを取得してインストール

これも1番、2番は、トラブったこともあるので、3番をオススメします。

1. apt-getでインストール

2. npmでインストール

3. ソースコードを取得してインストール

関連リンク

phantomjs
casperjs

Spookyjsのインストール

そして、今回の主役であるSpookyjsのインストールはnpmで行います。
グローバル環境にインストールしてもいいですが、今回は、ローカル環境にインストールしてみます。

ここで問題発生!!

以前作ったプログラムが、今回の環境で動きません。
いろいろ調べてみたところ、Spookyjsのモジュールがおかしいようです。

解決

そして更にわかったのは、npmインストールした時に、nom_modulesフォルダに、「spooky」以外のフォルダが作られていることに気が付きました。

これは、モジュールが利用するパッケージを同時にインストールしているらしいのですが、以前は、こうした階層構造ではなく、

という階層に入っていました。
spooky以外のフォルダを「node_modules/spooky/nodemodules/」この下に移動させてみたらちゃんと動作出来ました。
これは、npmのバージョンの問題なのか?
何かしらの仕様が変わったのか、今のところは深掘りせずに、そのうち手が空いた時に調べてみたいと思います。
Docker環境でよかった・・・本番だったらトラブってたところだ。

関連リンク

spookyjs

起動テスト

インストール作業が完了したら、モジュールの起動テストです。
下記ソースコードを設置して、実行してみましょう。

ソースコード

※このコードはspookyjsのgithubページにサンプルで置いてあるものです。

実行

メッセージが表示されたら、成功ですね。
とりあえず、今回は環境構築ですが、次回は、クローリングの基礎コードを書いてみたいと思います。

リンク

クローリングシステム構築

1. Spookyjsの環境設定
2. クローリング基本ソースコード
3. WEBシステムとの連動環境構築

Leave a Reply

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


*