检测 RSS 提要中的新项目
Posted
技术标签:
【中文标题】检测 RSS 提要中的新项目【英文标题】:Detecting new new items in a RSS feed 【发布时间】:2010-11-22 12:30:38 【问题描述】:检测 Feed 何时更新的最佳方法是什么?假设我有一个应用程序每 15 分钟轮询一次提要。如何确定是否添加了新内容? 用于 RSS 和 Atom 提要。
【问题讨论】:
【参考方案1】:RSS 2 和 Atom 中的每个项目都有一个可能被标记为唯一的 GUID/ID。如果它被标记为唯一,您可以使用它来识别项目并与之前的项目进行匹配。
【讨论】:
根据rssboard.org/rss-specification#ltguidgtSubelementOfLtitemgt,guid
是一个可选字段,因此它可能不会出现在某些 RSS 提要中!【参考方案2】:
在请求字段时检查 http 响应的 Last-Modified 和 ETag 字段。更好的是,在您的请求中使用 If-Modified-Since 和 If-None-Match 标签,如果提要没有被修改,您只会收到 304 响应。 (见:http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html)
【讨论】:
是否所有网站提要都支持 etag?并且 etags 容易被 javascript 读取吗?【参考方案3】:我在我的项目中使用 etags,在 servlet 过滤器中计算,如下所示 http://www.infoq.com/articles/etags
这适用于您的网络服务器上托管的 rss、atom 或任何其他资源。
【讨论】:
以上是关于检测 RSS 提要中的新项目的主要内容,如果未能解决你的问题,请参考以下文章
Wordpress 网站的 Mailchimp RSS 提要仅包含新项目,基于 FEEDITEM 的提要包含旧项目