memorandums

日々の生活で問題解決したこと、知ってよかったことなどを自分が思い出すために記録しています。

NHKニュースのRSSからXMLを取得してProcessingでパースするサンプル

卒業研究も大詰めです。

2月4日(土)に本学にて発表会があります。

そんな中、卒業研究でスマートミラーを製作していた学生からSlack経由でSOSコールがありました。ちなみにスマートミラーというとずいぶん前に流行ったものだと記憶していますが、最近、Googleのエンジニアが作ったとかで話題になったので、それを真似して作ってみたい(と言ったかは覚えていない)という学生さんが真似て作っていました。

www.androidexperiments.com

国内のあちこちのブログでも取り上げられているようで簡単に自作することができます。で、その学生がGoogleニュースをfeed apiを使って取得するプログラムを作っていたようですが、どうやら使えなくなったようで。もう時間も時間なので、とりあえず代替を探してあげることにしました。

30分ほど探してあれこれ実装してみたところ、候補はいくつかあったのですが一番簡単(キーの登録が必要ないという意味で)のはNHKニュースと思われます。しかもサイトを見た感じではアクセス数の制限などがないようです。

こういうちょっとした作業も秒速で忘却の彼方に行ってしまうのでメモしておきます。

まずニュースサイトは以下です。RSSXML形式で取得できます。

NHKオンライン|RSSについて

とりあえず一番上の「主要ニュース」を選択するとアドレスは以下になります。

http://www3.nhk.or.jp/rss/news/cat0.xml

あとはこのxmlファイルをパースして表示するだけです。

いつもの便利なProcessingを利用します。特にライブラリは使用していないのでProcessingを起動して以下のコードをコピペして実行するだけでタイトルが取得できます。便利ですねぇ。。。ほんと。

XML xml = loadXML("http://www3.nhk.or.jp/rss/news/cat0.xml");
XML[] items = xml.getChild("channel").getChildren("item");

for (XML item : items) {
    String title = item.getChild("title").getContent();
    println(title);

//    String link = item.getChild("link").getContent();
//    println(link);

//    String pubDate = item.getChild("pubDate").getContent();
//    println(pubDate);
}

はい、これだけです。