Python RSS解析器,也处理FeedBurner
问题描述:
我正在为RSS提要编写一个Python解析器脚本。我正在使用feedparser,但是,我坚持解析来自FeedBurner的提要。现在谁需要FeedBurner?不管怎么说..Python RSS解析器,也处理FeedBurner
例如,我找不到方法来解析
http://feeds.wired.com/wired/index
http://feeds2.feedburner.com/ziffdavis/pcmag
当我把那些进入feedparser库,似乎并没有工作。 尝试在URL末尾添加?fmt = xml或?format = xml,但仍未获取xml格式。
我是否需要使用诸如BeautifulSoup这样的html解析器来解析FeedBurner提要?最好,是否有一个python公共解析器或聚合器脚本处理这已经?
任何提示或帮助将不胜感激。
答
这可能是您的版本问题,或者您使用的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>'
答
我知道这个问题已经很老了,但我想这将是通过搜索解析feedburner RSS feed来粘贴一个简单的代码的解决方案,帮助任何遇到它的人都能获得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源一起使用。
遵循您的指导作品。谢谢你。我一定是错误的输入了一些东西,因为我只是得到了d ['entries']的空结果 – DavidL 2011-04-19 22:12:31
@DavidL:现在很高兴它现在可以工作。我对“错误的错误”非常熟悉。 :-) – ars 2011-04-24 04:48:53