Python RSS Parser也处理FeedBurner

时间:2011-04-19 21:31:38

标签: python rss feeds xml-parsing feedparser

我正在为RSS feed编写Python解析器脚本。我正在使用feedparser,但是,我一直在解析FeedBurner的Feed。谁现在需要FeedBurner?不管怎么说..

例如,我找不到解析方法

http://feeds.wired.com/wired/index

http://feeds2.feedburner.com/ziffdavis/pcmag

当我将它们放入feedparser库时,似乎无法正常工作。 尝试在网址的末尾放置?fmt = xml或?format = xml,但仍未获得xml格式。

我是否需要使用诸如BeautifulSoup的html解析器来解析FeedBurner提要?最好是有一个python公共解析器或聚合器脚本来处理这个吗?

非常感谢任何提示或帮助。

2 个答案:

答案 0 :(得分:4)

您可能遇到版本问题或者您错误地使用了API - 这有助于查看您的错误消息。例如,以下内容适用于Python 2.7和feedparser 5.0.1:

>>> import feedparser
>>> url = 'http://feeds2.feedburner.com/ziffdavis/pcmag'
>>> d = feedparser.parse(url)
>>> d.feed.title
u'PCMag.com: New Product Reviews'
>>> d.feed.link
u'http://www.pcmag.com'
>>> d.feed.subtitle
u"First Look At New Products From PCMag.com including Lab Tests, Ratings, Editor's and User's Reviews."
>>> len(d['entries'])
30
>>> d['entries'][0]['title']
u'Canon Color imageClass MF9280cdn'

使用其他网址:

>>> url = 'http://feeds.wired.com/wired/index'
>>> d = feedparser.parse(url)
>>> d.feed.title
u'Wired Top Stories'
>>> d.feed.link
u'http://www.wired.com/rss/index.xml'
>>> d.feed.subtitle
u'Top Stories<img src="http://www.wired.com/rss_views/index.gif" />'
>>> len(d['entries'])
30
>>> d['entries'][0]['title']
u'Heart of Dorkness: LARPing Goes Haywire in <em>Wild Hunt</em>'

答案 1 :(得分:2)

我知道这个问题已经很老了,但我认为通过搜索解析feedburner RSS feed的解决方案来粘贴一个简单的代码来获取破解的最新条目对任何人都有帮助。 .com feedburner。我已经在其他一些网站上测试过,它运行正常。

def GetRSS('RSSurl'):
    url_info = urllib.urlopen(RSSurl)
    if (url_info):
        xmldoc = minidom.parse(url_info)
    if (xmldoc):
        url = xmldoc.getElementsByTagName('link').firstChild.data
        title = xmldoc.getElementsByTagName('title').firstChild.data
        print url, print title

只需将feedurner页面的地址替换为RSSurl即可。另外,正如您可能看到的,如果您想要任何其他元素,您可以添加一个额外的getElementsByTagName行,以及您想要获得的任何内容。

编辑:据我所知,也可以使用几乎任何RSS提要。