"RSSとAtomを知らない子供たち"なので調べる
参考いろいろ
RSS/Atomまったくわからん人向け 👶
RSSって何?RSSの仕組みを理解し、RSSリーダー「Feedly」を使ってみよう! : ビジネスとIT活用に役立つ情報
今さら聞けない「RSS」の仕組みと使い方|@DIME アットダイム
RSSとATOMの違いと特徴は?配信方法やサンプルフォーマットあり| medifund
PythonとRSSの基礎 🐍
【Python】feedparserでRSSフィード解析 | amateur engineer's blog
【Python】RSSからタイトルを取得する(Beautiful Soup) | 鎖プログラム
PythonでRSSフィードを取得しニュースをかき集めるアプリをつくる - よちよちpython
APIとRSSを使ってみよう | 東京大学グローバル消費インテリジェンス寄付講座
Python, feedparserでRSS, Atomフィードを解析 | note.nkmk.me
RSS/Atomがっつりした仕様解説 ✨
RSS 2.0 Specification 日本語訳 - futomi's CGI Cafe
RFC 5005: Feed Paging and Archiving
Atom 1.0 の仕様について述べられてるっぽいサイト - Sakura scope
RFC 4287 The Atom Syndication Format 日本語訳
feedparserドキュメント 🐤
Reference — feedparser 5.2.0 documentation
名前空間の話
RSS is 何?
RSSとは「Webサイトの新着情報を配信するフォーマット」
RSSは、XML形式で記述されており、RSSリーダーと呼ばれるツールを使用することで、様々なサイトの更新情報や新着情報を自動的に取得することができます。
RSSって何?RSSの仕組みを理解し、RSSリーダー「Feedly」を使ってみよう! : ビジネスとIT活用に役立つ情報
バージョンごとにRich Site SummaryやRDF Site Summary、Really Simple Syndicationと元の名称が変わっています。似たフォーマットとして、Atomというのも開発されています。
【Python】feedparserでRSSフィード解析 | amateur engineer's blog
RSSリーダーとは?
RSS リーダーは、リーダーに登録されたWebサイトのRSSをチェックし、新しく追加された新着情報があれば、その「ページタイトル」「アドレス」「見出し」「要約」「更新時刻」などを表示します。その中から興味のある見出しをクリックすると、該当ページが表示されます。
RSSって何?RSSの仕組みを理解し、RSSリーダー「Feedly」を使ってみよう! : ビジネスとIT活用に役立つ情報
feedly
RSSの1つ。
Welcome to Feedly
chrome拡張のrss
RSS Feed Reader - Chrome ウェブストア
「RSS」と「RSSフィード」の違いは?「RSSリーダー」って何?
「RSS」はニュースサイトやブログなどの更新情報を配信するための技術であるのに対し、「RSSフィード」はRSS形式で配信される情報のことです。
「RSSフィード」は、通常「RSSリーダー」と呼ばれるツールを利用して取得することができます。具体的には、RSSフィードのURLを「RSSリーダー」に登録して利用します。また、複数のサイト(URL)を登録することができるので、受信したサイトの更新情報をまとめて管理できます。
Atom is 何?
RSSやATOMはフィードというサイトの更新情報を配信する仕組みでテキスト配信のみのRSS1.0と文字の装飾やリンク設置が可能なRSS2.0、RSS2.0と似ていながらよりシンプルな仕様のATOMがあります。
RSSはさらにRSS1.0とRSS2.0に分類することができて、ATOMと合計で3種類の配信フォーマットがありますが、RSS2.0はRSS1.0の後継フォーマットというわけではなく、開発企業も仕様も全く異なる別のフォーマットです。むしろRSS2.0とATOMの方が仕様が似通っている部分もあります。
RSSとATOMの2種類のフォーマットがあるのではなく、配信する情報内容と質によってRSS1.0、RSS2.0、ATOMの3種類のフィードがあると考えれば良いでしょう。
※フィードとはコンテンツ配信の文書フォーマットであるRSS、Atomをまとめて指す言葉
ATOMとRSSの最大の違いはATOMには配信と編集の2つのフォーマットが用意されていることです。
RSSとATOMの違いと特徴は?配信方法やサンプルフォーマットあり| medifund
要素
Atom - RSS改訂の試み
Atomフィードの書式についてのメモ - Vがいる日々
-
feed
RSSで言うところのchannel要素 -
entry
RSSで言うところのitem要素 -
href
RSSのlink要素
カテゴリー要素
「カテゴリー」を示すcategory要素を持つことができるようになっています。
- カテゴリーを示す分類名はterm属性で記述する(必須)
- 必要に応じて、そのスキーム(名前空間)をscheme属性でIRIとして示す
- また、アプリケーションが人間読者に示すためのラベルをlabel属性で加えることができる(category要素または祖先要素のxml:langに従う)
<category term="Music" scheme="http://xmlns.com/wordnet/1.6/" label="音楽"/>
名前空間
トップレベルの要素feedにデフォルトの名前空間として指定されていますので,feed以下の要素も,指定されていない限りAtomの名前空間に属します.
rssと違い基本的には名前空間が共通化されています。
4種類のコンストラクト
Atomフォーマット全体で幾つかの要素で共通に使われる構成。
Contentコンストラクト
Personコンストラクト
Dateコンストラクト
Linkコンストラクト
RSSのがっつり仕様とよくわかってない箇所
RSS とは、ウェブコンテンツのシンジケート(配信)フォーマットのことです。
RSS 文書のトップレベルは、version という必須属性をもった <rss> 要素となります。その文書が準拠する RSS のバージョンを指定します。この仕様に準拠する文書であるなら、version 属性は 2.0 でなければいけません。
<rss> 要素の下位属性は、単一の <channel> 属性となります。<channel> 属性は、そのチャネル(メタデータ)とそのコンテンツに関する情報を含むものです。
チャンネルには、どれだけ <item> 要素を含めても構いません。item は新聞や雑誌にあるような "記事" を表すかもしれません。、description が記事の粗筋だとしたら、link は全記事を指し示します。
RSS 2.0 Specification 日本語訳 - futomi's CGI Cafe
オプションのchannel要素
cloud 🔥
RSS フィード用のライトウェイトな配信予約プロトコルを使って、
チャンネルへ更新を通知してもらうために、cloud に登録することができます。
この例では、それが現れるチャンネルでの通知をリクエストするために、
XML-RPC メッセージを、port 80 で、パスを /RPC2 と指定して、rpc.sys.com に送信します。
呼び出すプロシージャーは、myCloud.rssPleaseNotify です。
rating
チャンネルのpics(Platform for Internet Content Selection)レーティング。
PICSとは、Webページにおける特定の情報を表示しないようにするための技術のことである。W3Cによって標準化されている
=>要はエッチなサイトとかのフィルターとかのあれに使われる感じっぽい?
skipHours skipDays 🔥
アグリゲーター??
アグリゲータは何時にスキップすることができるかを伝える暗示です。
詳細情報はこちらをご覧下さい。
<item>要素
RSSフィードのURL
ページのソースから確認出来る
“< link href = "https://blog.benchmarkemail.com//rss.xml" rel = "alternate" type =" application/rss+xml" title ="" / >”
その他用語
feedparserと遊ぶ
Python, feedparserでRSS, Atomフィードを解析 | note.nkmk.me
import feedparser
import pprint
import time
if __name__ == "__main__":
print(feedparser.__version__)
print("Atom形式")
d_atom = feedparser.parse("http://gihyo.jp/feed/atom")
# <class 'feedparser.FeedParserDict'>
print("type:", type(d_atom))
pprint.pprint(d_atom, depth=1) # debug
print("*" * 30)
print("RSS1.0形式")
d_rss1 = feedparser.parse("http://gihyo.jp/feed/rss1")
# <class 'feedparser.FeedParserDict'>
print("type:", type(d_rss1))
pprint.pprint(d_rss1, depth=1) # debug
print("*" * 30)
print("RSS2.0形式")
d_rss2 = feedparser.parse("http://gihyo.jp/feed/rss2")
# <class 'feedparser.FeedParserDict'>
print("type:", type(d_rss2))
pprint.pprint(d_rss2, depth=1) # debug
feed
キー
feedキーにはフィード自体の情報(配信されている情報)が格納されている。
feedキーの値もFeedParserDictとなっている。
updateとかlinkとかもろもろ
entries
キー
entriesキーはFeedParserDictを要素とするリストとなっており、それぞれのFeedParserDictにコンテンツの詳細情報が格納されている。
各コンテンツのURL(link)、タイトル(title)、要約(summary)などの情報が含まれている。
feedparaser キホン
共通のRSS要素
共通の<channel>要素
- feed
タイトル、リンク、説明、発行日、エントリID
共通の<item>要素
- entries
共通のAtom要素
共通の<feed>要素
- feed
タイトル、リンク、サブタイトル/説明、各種日付、およびIDです。
共通の<entry>要素
- entries
オプショナルなRSS要素
- フィードイメージ
feed.image - 複数カテゴリ
feed.categories
オプショナルなAtom要素
feedparser 応用
Content Normalization
Universal Feed Parser can parse many different types of feeds: Atom, CDF, and nine different versions of RSS. You should not be forced to learn the differences between these formats. Universal Feed Parser does its best to ensure that you can treat all feeds the same way, regardless of format or version.
すごーい。RSSをAtomとして逆にAtomをRSSとして扱うみたいなことも可能な限り出来るらしい。
Namespace Handling TODO
Universal Feed Parser attempts to expose all possible data in feeds, including elements in extension namespaces.