この記事はいわゆるWebスクレイピングを、Node.jsを使って行うときのサンプルコードの紹介になります。
目次
1. 前提条件
n などでnodeおよびnpmを任意のバージョンにしておく。
$ node --version |
node周りはこちらを参考にさせていただきました。
参考: Ubuntuに最新のNode.jsを難なくインストールする
2. Crawlerモジュールのインストール
npmで公式がクローラ用のモジュールを提供してくれているので、サクッとインストールします。
参考: crawler - npm
$ npm install --save crawler |
(今回のソースコードを今後流用したかったので、package.jsonに保存するように–saveを付けています。)
3. 公式を参考にコードを書く
今回はGoogle先生で「寿司屋」を検索したときの検索結果ページの情報から、検索結果の件数「約 ○○ 件」を抜き出したものになります。
var Crawler = require("crawler"); |
(queueに入れる際にURLとパラメータを分ける方法がありますが今回は割愛)
4. 実行する
実行すると以下のような結果が得られると思います。
$ node sample.js |
res オブジェクトの中に headers や request が入っているので、いろいろ処理に使えそうです。
今回はリクエストパラメータが何であったかを雑なパーサーで抽出しています。
$('#[好きなタグID]')
で結果のHTMLにあるIDから値が取れるようです、けっこう便利ですね。
こんな感じでシンプルにWebページの情報を取得できます。
5. 注意事項
クローラのようなものでWebページをスクレイピングする際は、アクセス負荷で先方にご迷惑にならないよう十分注意しましょう。
サンプルを流用する際は、くれぐれも自己責任でよろしくお願いしますm(_ _)m