如何获取RSS源上的所有旧项目?
我一直在尝试写我自己的RSS阅读器。 我可以处理“parsingXML”位。 我遇到的问题是“如何获取旧post?”
大多数RSS源仅列出其XML文件中的10-25个最新项目。 如何获得Feed中的所有项目,而不仅仅是最近的项目?
我能find的唯一解决scheme就是使用“非官方”的Google Reader API,这将是类似的
http://www.google.com/reader/atom/feed/http://fskrealityguide.blogspot.com/feeds/posts/default?n=1000
我不想让我的应用程序依赖于Google阅读器。
有没有更好的办法? 我注意到,在Blogger上,我可以做“?start-index = 1&max-results = 1000”,在WordPress上我可以做“?paged = 5”。 有没有什么一般的方法来获取RSS提要,以便它给我所有的东西,而不只是最近的项目?
RSS / Atom提要不允许检索历史信息。 如果需要的话,请提供给Feed的发布者,例如您在上面提供的博客或wordpress示例中。
Google Reader获得更多信息的唯一原因是它从第一次出现时就记住了。
有一些这样的信息被称为ATOM协议的扩展 ,但是我不知道它是否在任何地方实际实现。
根据我对RSS的经验,feed是由X是variables的最后X个项目编译的。 某些Feed可能有完整的列表,但是对于带宽而言,大部分地方可能只限于最后几个项目。
谷歌阅读器的旧信息可能的答案是,它将它存储在一边为用户以后。
除了David Dean所说的RSS / Atom提要将只包含该提要的发布者在那个时候,有人需要积极收集这个信息以获得任何历史信息。 基本上谷歌阅读器是这样做的免费的,当你与它交互,你可以从谷歌数据库服务器检索这个存储信息。
现在他们退休了,据我所知,你有两个select。 您必须开始从您感兴趣的提要中收集这些信息,并使用XML或其他方式存储数据,或者您可以向销售此类归档的提要信息的某个公司支付这些数据。
我希望这个信息有助于某人。
SEAN
正如这里提到的其他答复,饲料可能不提供档案数据,但可能从其他来源获得历史项目。
Archive.org的Wayback Machine有一个访问历史内容的API,包括RSS源(如果他们的机器人已经下载了它)。 我已经创build了networking工具反馈 ,它使用这个API来重新生成一个包含连接历史项目的提要。 如果您想详细讨论实施,请与我们联系。
另一个可能的解决scheme,当这个问题最初被问到时可能不可用,也不需要任何特定的服务。
- find您想要的RSS提要的URL,并使用waybackpack获取该提要的归档url。
- 使用FeedReader或类似的库来下载已存档的RSS提要。
- 从每个饲料中获取url,然后根据需要进行刮取。 如果你回来的时间可能会有一些死链接。
RSS / Atom标准没有办法查询较早的RSS文章。
我也在研究一个RSS阅读器,并决定build立自己的RSS档案服务( https://app.pub.center )。 免费使用REST API。 我们收取推送通知的钱。
该服务每天轮询它的RSS源的目录,并caching文章。 然后,您可以按照时间顺序将这些文章重新获得。 例如:
第1页大西洋https://pub.center/feed/02702624d8a4c825dde21af94e9169773454e0c3/articles?limit=10&page=1
大西洋的页2 https://pub.center/feed/02702624d8a4c825dde21af94e9169773454e0c3/articles?limit=10&page=2
之前的所有答案或多或less都依赖于现有的服务,仍然拥有该提要或提要引擎的副本,以便能够dynamic提供较旧的项目。
还有另外一个可以肯定的积极主动的理论方法:让你的feedreader使用一个caching代理,它在语义上理解RSS和/或Atom提要,并将它们caching在每个项目上,最多可以configuration多less项目。
如果FeedReader不能定期轮询Feed,则代理可以基于自己的时间获取已知的Feed,不会错过高度不稳定的Feed中的项目,例如User Friendly中只有一个项目且每天更改(或至less曾经这样做)。 因此,如果feedreadere.g。 当您离开几天时崩溃或丢失networking连接,则可能会丢失FeedReadercaching中的项目。 有代理经常提取这些饲料(例如,从数据中心,而不是从家里或服务器,而不是一台笔记本电脑),让您只需轻松地运行feedreader,当没有失去饲料读取器提交饲料后张贴的项目上一次,但是在下一次抓取它们之前再次旋出。
我把这个概念称为Semantic Feed Proxy ,我实现了一个名为sfp的概念validation 。 这只不过是一个概念的certificate,我还没有进一步发展。 (所以我会很高兴提供类似的想法或目的的项目提示:-)