Open2

denoでRSSからタイトルとURLを取得

MasatMasat

ちょっとしたプログラムのために。せっかくなのでdenoでRSSからタイトルとURLを取得するやり方を調べる。

denoのサードパーティモジュールのサンプルそのまま、
https://deno.land/x/rss

import { parseFeed } from "https://deno.land/x/rss/mod.ts";

const response = await fetch(
  "https://deno.com/feed",
);
const xml = await response.text();

const { entries } = await parseFeed(xml);

console.log(entries[0]);

結果は、こんな感じ。

{
  rights: { value: "Copyright 2023 Deno Land Inc." },
  id: "https://deno.com/blog/v1.30",
  published: 2023-01-26T12:00:00.000Z,
  publishedRaw: "2023-01-26T12:00:00.000Z",
  updated: 2023-01-26T12:00:00.000Z,
  updatedRaw: "2023-01-26T12:00:00.000Z",
  title: { value: "Deno 1.30: Built-in Node modules", type: "html" },
  description: {
    value: "Deno 1.30 supports built-in Node modules, deno.json is an import map, deno fmt can format without se...",
    type: "html"
  },
  links: [
    { href: "https://deno.com/blog/v1.30", rel: undefined, type: undefined },
    { href: "https://deno.com/blog/v1.30" }
  ],
  attachments: [],
  author: { email: undefined, name: "David Sherret", uri: undefined }
}

パーサも便利だけど、fetchがすごい便利です。

MasatMasat

ここからタイトルとリンクを取り出す。

// タイトル
> console.log(entries[0].title.value);
Deno 1.30: Built-in Node modules

// リンク
> console.log(entries[0].links[0].href);
https://deno.com/blog/v1.30