rss-parser を使って Node.js で RSS を JSON に変換する
Node.js で RSS を取得して扱おうと思い調べたところ、rss-parser
というライブラリが使いやすかったので紹介。
# インストールはいつもどおり。
$ npm install --save rss-parser
以下のようなサンプルスクリプトを書いてみる。
const RssParser = require('rss-parser');
const rssParser = new RssParser();
// 試しにスラッシュドットジャパンの RSS フィードの URL を指定する
rssParser.parseURL('http://slashdot.jp/slashdotjp.rss')
.then((feed) => {
console.log('RSS 取得成功', feed);
})
.catch((error) => {
console.error('RSS 取得失敗', error);
});
このようにすると、feed
プロパティに RSS フィードの内容が含まれている。RSS は XML 形式なので、feed
プロパティから JSON オブジェクト (連想配列) の形でタグ名を辿っていくと、中身が取得できる。
大抵はこのように、フィードの URL を指定してパースすると思うが、RSS フィードの文字列からの変換も可能だ。次のコードは RSS ファイルをローカルに用意しておき、その中身を参照してみた。
const RssParser = require('rss-parser');
const fs = require('fs');
// ファイルを読み込んで文字列で取得する
const rssFile = fs.readFileSync('./my-feed.rss', 'utf8');
rssParser.parseString(rssFile)
.then((feed) => {
console.log('RSS 取得成功', feed);
})
.catch((error) => {
console.error('RSS 取得失敗', error);
});
とてもお手軽。これで簡単に、RSS フィードをスクレイピングしてあれやこれやできそう。