读取RSS源:聚合器做了什么我没做的?
我把下面这个链接放进了Google Reader,它更新得很正常。
http://www.indeed.ca/rss?q=&l=Hamilton%2C+ON
但是,当我用网上推荐的几种方法去读取这个源并解析我收到的XML时,我总是只能看到同样的20条内容。
Google Reader是怎么做到的,我在代码里该怎么做才能收到新的内容呢?
谢谢你的建议。顺便说一下,我是在用Python编程。
2 个回答
0
1) 你试过用其他的RSS源吗?
2) 如果试过的话,听起来像是缓存的问题……你是在某个代理服务器后面吗?
3
RSS聚合器会定期“轮询”各个信息源,也就是说,它们会不断地重复发送HTTP请求,查看这些信息源有没有新内容。这种方式其实并不好,因为轮询就像是在不停地问“我们到了吗?”一样,浪费了很多资源(就像带着小孩长途开车一样;-),而且还会有延迟(比如你每小时查询一次某个信息源,那你可能得等上一个小时才能看到新结果)。
不幸的是,在RSS的架构中,并没有其他的选择,无法在有新内容出现时请求“回调”,也不能选择更合理的“发布-订阅架构”。
为了解决这个问题,有一个不错的尝试叫做pubsubhubbub,但这需要RSS信息源和聚合器的合作(超出了RSS标准的要求)——所以在被称为“解决方案”之前,它需要广泛的采用,尽管从技术上讲,它已经是一个解决方案(对于合作的网站来说;-)。
所以回到你的问题,你并没有做错什么:你只需要像RSS聚合器那样定期轮询,才能最终看到新结果。