【问题标题】:Extracting new items from an RSS feed从 RSS 提要中提取新项目
【发布时间】:2011-05-27 01:08:00
【问题描述】:

我正在编写一个应用程序,它从一系列任意 RSS 提要中获取数据输入。提要在后台异步轮询,每次向提要中添加新项目时都会调用一个方法。

我的问题是识别提要中的新项目。最好的方法是什么?我提出了一些想法,但都存在缺陷。

建议:每次投票时,保持 所有比 pubDate 更新的项目 上次投票中的最后一项 问题:pubDate 不是必需的 字段。

建议:保留内容的哈希值 对于您退回的每件商品,不要 返回具有相同哈希的内容 问题:迅速失控 在内存使用方面

【问题讨论】:

    标签: c# language-agnostic rss


    【解决方案1】:

    您可以将 PubDate 用于提供它的那些 RSS 提要。 当没有提供 PubDate 并且重复项完全相等时,即.. 当您找不到任何单个字段来区分它们时,计算 md5 校验和并将其存储以进行比较。使用链接http://sharpertutorials.com/calculate-md5-checksum-file/。这样,您将避免存储整个内容文件及其比较。实际上,您可以经常根据新内容的频率清除校验和数据,以避免内存问题。如果可能的话,为不同的来源维护多个散列。如果您发布实际数字,我们可能会有更现实的解决方案。

    【讨论】:

      【解决方案2】:

      两个怎么样?

      在确实返回它的提要上使用 pub-date,并保留其他提要的哈希值。 如果大多数提要返回发布日期,并且提要的数量没有达到数百万,那么无论是性能还是内存方面,您都应该没问题。

      【讨论】:

      • 我推荐主题的散列和正文的散列。此外,一些提要有 guid 和其他 UUID。
      • 为什么要为正文和主题保留单独的哈希值?这不是让我的存储开销翻倍吗?
      猜你喜欢
      • 2010-11-22
      • 1970-01-01
      • 1970-01-01
      • 2017-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多