使用Python组合多个RSS提要的最佳算法

时间:2010-11-12 18:29:38

标签: python

我正在编写一个python脚本来组合大约20多个RSS源。我想使用自定义解决方案而不是feedjack或planetfeed。

我使用feedparser解析feed和mysql来缓存它们。

我遇到的问题是确定哪些Feed已被缓存,哪些尚未缓存。

我尝试过的一些伪代码:

  • 创建所有Feed项的列表
  • 获取从db
  • 缓存的最后一项的日期
  • 检查列表中哪些项目的日期大于我的项目,并返回此过滤列表
  • 按项目创建日期对返回的已过滤列表进行排序
  • 将新项目添加到数据库

我觉得这样可行,但我的问题是并非我使用的RSS源上的所有日期都是正确的。无论出于何种原因,出版商有时会在未来提供包含日期的Feed项目。如果将此日期添加到数据库中,则它将始终大于列表中项目的日期。因此,比较停止工作,并且没有新项目添加到数据库。我想提出另一种解决方案,而不是依赖出版商的日期。

你们有些专业人士如何做到这一点?假设您必须组合多个rss提要,将它们保存到mysql数据库,然后按日期排序返回它们。我只是在寻找伪代码,让我知道最好的方法。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

根据Feed的更新频率和检查频率,您可以简单地修复损坏的日期(如果将来,将其重置为今天),然后再将其添加到数据库中。

除此之外,你必须使用某种ID - 我认为RSS在每个项目上都有一个ID字段。如果您的Feed按顺序保存,您可以获取最新的缓存ID,在Feed项列表中找到它,然后添加更新的内容。如果它们出现故障,您必须根据缓存检查每个缓存,如果缺少则添加它。