从不同用户代理获取相同RSS源的不同结果

时间:2011-01-09 22:28:09

标签: python rss feedparser atom-feed syndication

如果我将Feed网址添加到Google阅读器或桌面Feed聚合器,我会收到很好的结果。网址是:

http://estaticos03.marca.com/rss/futbol_1adivision.xml

但是当我从脚本中获取相同的URL(python脚本,使用feedparser库)时,我得到的结果略有不同(例如,每个条目的标题都不同,全部都是大写的)。 / p>

我相信在服务器端做了一些事情,试图阻止像我这样的人为我自己的项目解析内容(提要来自一家受欢迎的足球报纸),但我不确定。我试图传递一些用户代理(如谷歌阅读器),但仍然没有运气,所以也许他们也检查IP?我真的很困惑。

知道为什么会发生这种情况?

谢谢!

3 个答案:

答案 0 :(得分:0)

AFAIK Google阅读器在内容中做了一些“神奇”来美化它。他们剥离了一些标签和样式,以避免破坏他们的界面。

您能否提供有关差异的更多详情?

答案 1 :(得分:0)

您是否更改了脚本的用户代理?尝试模仿Firefox,看看会发生什么。

答案 2 :(得分:0)

好的伙计们,我找到了。我分析了收到的源XML(作为@TryPyPy)。我一直信任feedparser库。最新的正式版本(4.1)有一个错误与错误标题标签从媒体命名空间而不是原始标签:

http://code.google.com/p/feedparser/issues/detail?id=76

所以我从后备箱重新安装,现在一切正常。无论如何,谢谢你的帮助!