読者です 読者をやめる 読者になる 読者になる

落書きノート

ふと自分が気になった事を書いてます

Yahoo天気予報から天気情報を取得する

Node.jsでxml2jsとcheerio-httpcliを使ったプログラムです。

xml2jsを使ったプログラム

var RSS = "http://rss.weather.yahoo.co.jp/rss/days/4410.xml";

var parseString = require('xml2js').parseString;
var request = require('request');

request(RSS, function(err, response, body){
  if(!err && response.statusCode == 200){
    analyzeRSS(body);
  }
});

function analyzeRSS(xml){
  parseString(xml, function(err, obj){
    if(err){ console.log(err); return; }
    // console.log(JSON.strinGIFy(obj));
    var items = obj.rss.channel[0].item;
    for(var i in items){
      var item = items[i];
      console.log(item.title[0]);
    }
  })
}

cheerio-httpcliを使ったプログラム

var RSS = "http://rss.weather.yahoo.co.jp/rss/days/4410.xml";

var client = require('cheerio-httpcli');

client.fetch(RSS, {}, function(err, $, res){
  if(err){ console.log("error"); return; }

  $("item > title").each(function(idx){
    var title = $(this).text();
    console.log(title);
  });
});

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-09-08-18-23-12

個人的にはCSSセレクタを使った方が楽だなと思いました。xml2jsを勉強という意味で使ってみるのも良いと思います。