【问题标题】:Feedzirra - How to get updated RSS feed?Feedzirra - 如何获取更新的 RSS 提要?
【发布时间】:2013-08-19 16:27:29
【问题描述】:

以下代码来自Feedzirra 的要点,用于从 RSS 提要中获取更新的内容:

feed = Feedzirra::Feed.fetch_and_parse(feed_url)
feed = Feedzirra::Feed.update(feed)
do_something_with_new_feed(feed.new_entries) if feed.updated?

我不明白 Feedzirra 是如何知道 Feed 已更新的。我无法让它工作。为了知道,我必须将之前(几分钟或几小时前)返回的Feed 对象Feedzirra::Feed.fetch_and_parse(feed_url) 传递给Feedzirra::Feed.update,不是吗?如果我使用刚刚 fetch_and_parse 的提要,它如何知道它是否已更新?

【问题讨论】:

    标签: ruby-on-rails feedzirra


    【解决方案1】:

    Feed(您正在访问的网站)可以(但不一定)维护一两个字段来确定自您上次访问后它们是否发生了变化。这些是 etag 和最后修改的。如果网站支持其中一个或两个,它们将在您访问提要时返回给您。您的模型应该为每个感兴趣的提要维护这些字段。 Feedzirra::Feed.update 使用它们来确定自您上次访问后该提要是否已更新。这些将允许 Feedzirra::Feed.update 提取自您上次访问以来新的或更改的条目。

    如果您既没有 etag 也没有 last modified 字段,无论是因为这是您的第一次访问,还是因为站点没有提供它们,那么 Feedzirra::Feed.fetch_and_parse 会从站点中提取所有可用条目。这对于第一次访问是有意义的。后续访问就没有意义了,但是如果网站不支持怎么办?

    需要明确的是,Feedzirra::Feed.fetch_and_parse 总是提取所有可用条目。 Feedzirra::Feed.update 仅提取自提供给它的 etag 和/或上次修改日期以来新的或更改的条目。

    条目也保留更新/发布日期。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-04
      相关资源
      最近更新 更多