Node.jsのスクレイピングモジュール「cheerio-httpcli」で電車遅延情報を取得
僕が最近趣味でやるはじめたNode.jsです。
今回はNode.jsでできるスクレイピングの紹介です。
電車の遅延情報の取得をしてみたいと思います。
Node.jsをインストールする
yum install epel-release リポジトリ追加 yum install nodejs npm --enablerepo=epel node.jsをインストール yum install gcc gcc-c++ c++インストール
スクレイピングモジュール「cheerio-httpcli」インストール
npm install cheerio-httpcli
準備完了。 「cheerio-httpcli」のソースやサンプル
スクレイピングして遅延情報を取得する
var client = require('cheerio-httpcli'); client.setBrowser('chrome'); // GoogleChromeのUser-Agentに変更 client.fetch('http://transit.yahoo.co.jp/traininfo/area/4/') .then(function (result) { var $ = result.$; $(".trouble").find("a").each(function(id) { client.fetch($(this).attr('href')) .then(function (result) { var $ = result.$; var rail_name = $("h1[class=title]").text(); var detail = $("#mdServiceStatus > dl > dd > p").text(); console.log(rail_name + ":" + detail); }) }); });
実行結果
node yahoo_train 上野東京ライン:11:59頃、横須賀線内で発生した人身事故の影響で、現在も一部列車に遅れが出ています。(12月27日 15時00分掲載) 高崎線:11:59頃、横須賀線内で発生した人身事故の影響で、現在も一部列車に遅れが出ています。(12月27日 15時00分掲載)
参考サイト http://qiita.com/you21979@github/items/4efd9fc4363573191b5c http://qiita.com/ktty1220/items/64168e8d416d6d8ffb45