是否所有RSS Feed都支持HTTP ETags /最后修改的标头,以指示Feed是否已更新?
对于不包含上次修改标头的Feed,确定Feed更新频率的最佳方式是什么?
我希望根据其更新频率定制我发送到每个Feed的请求数量,以减少带宽(跟随~2k Feed ...)
答案 0 :(得分:1)
不,并非所有供稿都支持ETag / If-Modified标头(不幸的是,它不会告诉您何时获取资源,只是它尚未更新)。
没有通用的方法来确定Feed的更新时间。然而,最流行的方法之一是PubSubHubbub协议,它是为此而设计的。 (它实际上更进一步,并在Feed中向您发送新内容,因此您甚至不必获取它)。 问题是所有源都不支持它(最多30%,具体取决于您正在处理的Feed类型:博客,新闻网站,电子商务等)。
另一个解决方案是检查http://superfeedr.Com(免责声明:我创建了那个野兽:p)因为我们会为你做所有肮脏的工作,你可以坐下来等我们向你发送数据(使用开放协议)。
答案 1 :(得分:1)
要查找新项目,请将检索到的Feed项目与之前找到的项目进行比较。如果项目具有GUID用于比较,则可以组合链接+标题等字段,或保留完整项目的MD5哈希值。
使用此知识来调整轮询间隔,就像我在this answer中所描述的那样。