Spookyjsを使ったクローリングツイートシェアはてブLINEPocketSpookyjsspookyjsとはヘッドレスブラウザを実現しているPhantomjsをNode.jsから使えるようにしたものです。詳細は以前のブログを参照してください。Spookyjsのメリットとデメリット導入方法SpookyjsはPhantomjsとCasperjsをインストールしておかないと使えないので下記npmコマンドでグローバルにインストールしておいてください。casperjsspookyjsは下記コマンドでインストールして下さい。spookyjsサンプルコードyahooのトップページを取得して検索を実行するコードです。下記はES6で記述しているためbabelでトランスパイルする必要があります。トランスパイルの方法はこちらを参考にしてください。{console.log(data)});spooky.start()メソッドで指定したURLのページを取得します。取得が完了したらthen()の中のコールバック関数が呼ばれます。capture()メソッドでその時点での画面のキャプチャを取得することができます。フォームへの入力spooky.fill()メソッドはフォームに入力することができます。yahooの検索フォームにnodejsと入力してclick()メソッドで検索ボタンを押しています。クリックした後のページをキャプチャしたのが下記になります。注意点として、spooky.then()内はCasperjsのスコープになるためスコープ外の変数への参照ができません。スコープ内はPhantomjsのヘッドレスブラウザ側で実行されるのでconsole.log()でログを表示させようとしてもNode.js側のコンソールには何も表示されません。ログを表示させたい場合はthis.emit()でスコープ内からイベントを送信し、Node.js側で受け取って表示させるしかないです。あと、ハマリポイントとして、then()内では//を使ったコメントアウトも使用できません。自分はこれに気づくまでにかなりの時間を使ってしまったので気をつけてください。今回のサンプルコードはES6で書いていますのでES5に書き直すか、ES6の導入方法を下記リンク先にまとめていますので参照してください。Node.jsでES6を導入する最短手順おすすめ書籍JavaScriptとNode.jsを使ったクローラー作成について学びたい方におすすめの書籍です。全8章からなり、前半はクローラーとスクレイピング方法に関して解説されています。手書き文字の認識、解析結果のグラフ描画など、どのように分析するのか解説されています。一通りクローリングとスクレイピングを学びたい人におすすめの一冊です。スマホゲームを作る子会社に所属し、サーバーサイドのエンジニアを担当。2年目の終わりから新規子会社の立ち上げに参加し、サーバーサイドのエンジニアリーダーとしてサービースのリリースから運用までを担当。Incにブロックチェーンエンジニアとして入社。コメントをキャンセルメールアドレスが公開されることはありません。babelでES6を導入する最短手順RECOMMENDこちらの記事も人気です。