使用Python下载RSS

1 投票
2 回答
1235 浏览
提问于 2025-04-15 20:51

我有200个RSS源需要下载。这是一个持续的过程——我必须下载每一篇文章,不能漏掉任何一篇,也不能重复下载。所以最好的办法是记录下每个源的最后更新时间,然后在每隔x小时检查一次有没有更新?另外,如果下载程序重启了,应该怎么处理呢?这样的话,下载程序需要记住已经下载过的内容,避免再次下载。

这个功能有没有现成的实现?或者有没有相关的文章推荐?谢谢!

2 个回答

2

你可以使用 feedparser 来解析信息源,并把每个信息源的最新发布时间存储到数据库里。

如果你想用一个简单的数据库,可以使用 shelve

4

通常,你可能想要这样做:

  • 定期获取信息源(feeds),然后用通用信息源解析器来解析这些信息,并把解析出来的内容存储起来。
  • 在获取信息源时,使用ETags和IfModified头部,这样可以避免解析那些自上次获取以来没有变化的信息源。你需要保存上次获取信息源时收到的ETags和IfModified值。
  • 为了避免重复,每条信息都应该用它独特的guid来存储,然后检查一下是否已经存储了同样guid的信息。如果没有guid,可以通过信息链接、标题和信息源网址的哈希值来唯一识别这条信息。

撰写回答