从RSS源中提取新项目

时间:2010-12-17 10:07:06

标签: c# language-agnostic rss

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

我的问题是识别Feed中的新项目。最好的方法是什么?我想出了一些想法,但它们都是有缺陷的。

  

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

     

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

2 个答案:

答案 0 :(得分:4)

两者怎么样?

在那些确实返回它的Feed上使用pub-date,并保留其他的哈希值。 如果大多数Feed返回pub-date,并且feed的数量不会达到数百万,那么你应该没有性能和内存。

答案 1 :(得分:2)

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