如何判断rss feed内容是否更新
为了熟悉django,打算照rssfwd.com的模式制作一个类似的项目。
在判断rss feed内容是否有更新上,我遇到了一点麻烦。我在python下使用feedparser.py来解析各种格式的rss或者atom等信息,结果发现很多站点提供的信息里面没有updated或者modified等时间信息。etag也是没有几个站点支持。这样造成了我的困惑,对于没有时间信息的rss资源如何判断是否更新过呢?
好在rssfwd是开源的,看了一下它的ruby程序。虽然不懂ruby,但大概上还是能看明白的。我发现rssfwd采用通过将每个feed里content
hash后的数据保存在catch中的方法来判断是否有变化。这确实不是一个很好的方法(效率低、占用存储空间大、无论是否更改都再度占用带宽下载),不过这是一个非常有效地解决手段。一下子将程序中需要考虑的众多针对各种版本rss/atom等资源兼容性问题就巧妙解决了。
1 Comments:
老兄, 用 http 响应的 304 吧
发表评论
<< Home