5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ラクスAdvent Calendar 2021

Day 7

Qiita Advent Calendar の RSS を読む

Posted at

ラクス Advent Calendar, 7 日目の記事です。

何のためかは別記事に譲りますが、Qiita Advent Calendar の RSS を取得して処理したくなりました。なので中に何が書かれているのかを読んでまとめてみました。

RSS とは

RSS(バージョンによってRich Site Summary, RDF Site Summary, Really Simple Syndicatio)は、ニュースやブログなど各種のウェブサイトの更新情報を配信するための文書フォーマットの総称である。
(Wikipedia RSSより引用)

RSS は要するに XML 文書です。いくつかの異なるバージョンがあり、それぞれ使われている要素に違いがあります。

Qiia Advent Calendar ではカレンダーのトップページ URL の末尾に /feed を付けた URL で RSS が配信されています。画面では下の画像のアイコンがリンクになっています。

ラクス Advent Calendar 2021 のトップページに設置された RSS のリンク

Qiita Advent Calendar の RSS 仕様(推測)

Qiita Advent Calendar の RSS を実際見てみたところ、どうやら Atom フォーマットで作成されているようでした。

Atom フォーマットは feed 要素をトップレベルとして、その内部にいくつかの子要素を含むことが出来ますが、Qiita の場合含まれる可能性があるのは以下の 5 種類のようです。

  • id: そのフィードの URL を含む識別子文字列が設定されています。
  • link: 必ず以下の二つが設定されるようです。
    • rel="alternate" で Qiita トップページの URL
    • rel="self" でそのフィードの URL
  • title: カレンダーのタイトルです。
  • updated: 最終更新日時。最後にカレンダーに記事が登録された時刻が入っているかと思いきやそうでもないっぽいです。よくわかりません。また 11 月に見たときはタイムゾーン指定子が Z だったのですが、今見ると +09:00 になっています。なぜ。
  • entry: カレンダーに紐づけられた各記事の情報です。登録された記事数分含まれており、それらは紐づいた投稿枠の日付の降順で並んでいるようです。

entry 要素

entry 要素には記事の情報が入っています。フィードのメインコンテンツと言っていいでしょう。Atom フォーマットの定義では entry 要素も内部に色々な子要素を含むことが出来ますが、Qiita では含まれる要素とその内容は以下のように限定されるようです。

  • id: 記事の一意な識別子っぽいですが生成規則はよくわかりませんでした。
  • published: 紐づいた投稿枠の日の 0 時が必ず設定されるようです。
  • updated: 記事が実際に投稿されたか、公開された日時のようです。外部の記事の場合、カレンダーに紐づけられた日時かもしれません。
  • link: rel="alternate" で記事の URL を href 属性に持つものが一つだけが設定されるようです。
  • title: 記事のタイトルです。
  • content: 記事の内容です。Atom の定義上 type 属性の値は text, html, xhtml のいずれかとなっていますが、Qiita では以下二つのうちのいずれかが使われるようです。
    • type="html": Qiita に投稿された記事の場合。記事全文が content 要素の値として設定されます。typehtml ですが、HTML のタグは取り除かれています。
    • type="text": 外部の URL が紐づけられた場合。content 要素の値は固定で「外部記事です」となるようです。
  • author: 記事の著者情報です。内部に複数の種類の子要素を取りえますが、Qiita では以下の一つしか設定されないようです。
    • name: 著者の名前。Qiita ユーザー名が設定されるようです。公開用プロフィールで名前を設定したらそちらが使われるのでしょうか。

まとめ

ちょっと Advent Calendar の更新状況を機械的に確認したくなったので配信されている RSS フィードの中身を確認し、まとめました。RSS フォーマットはバージョンのこともあって結構複雑ですが、Qiita のものは Atom フォーマットで統一されており、さらに使われている要素も限定的なようです。

そしてよく見ると Qiita のマイページにも RSS のリンクがあるので、こっちも同様の仕様かもしれません。

参考

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?