5

我正在为 RSS 提要编写 Python 解析器脚本。我正在使用 feedparser,但是,我一直在解析来自 FeedBurner 的提要。现在谁需要 FeedBurner?无论如何..

例如,我找不到解析的方法

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

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

当我将它们放入 feedparser 库时,似乎不起作用。尝试将 ?fmt=xml 或 ?format=xml 放在 url 的末尾,但仍然没有得到 xml 格式。

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

任何提示或帮助将不胜感激。

4

2 回答 2

5

您可能有版本问题或者您使用的 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:

>>> 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>'
于 2011-04-19T21:48:16.740 回答
2

我知道这个问题已经很老了,但我认为通过搜索解析 feedburner RSS 提要的解决方案以粘贴我从 Cracked.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

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

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

于 2012-02-13T09:45:07.650 回答