Analizador de Python RSS que también maneja FeedBurner
feeds xml-parsing (2)
Estaba escribiendo una secuencia de comandos del analizador de Python para feeds RSS. Estoy usando feedparser, sin embargo, estoy atrapado en el análisis de feeds de FeedBurner. ¿Quién necesita FeedBurner hoy en día? De todos modos ..
Por ejemplo, no pude encontrar formas de analizar
http://feeds.wired.com/wired/index
http://feeds2.feedburner.com/ziffdavis/pcmag
Cuando los coloco en la biblioteca del generador de informes, no parecen funcionar. Intenté poner? Fmt = xml o? Format = xml al final de las urls, pero aún no se obtuvo en formato xml.
¿Necesito usar un analizador html como BeautifulSoup para analizar feeds FeedBurner? Preferiblemente, ¿hay un analizador sintáctico python o un script agregador que maneje esto?
Cualquier sugerencia o ayuda será muy apreciada.
Es posible que tengas problemas con la versión o que estés utilizando la API de manera incorrecta; sería útil ver tu mensaje de error. Por ejemplo, lo siguiente funciona con Python 2.7 y 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''
Y con la otra 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>''
Sé que esta pregunta es muy antigua, pero creo que sería útil para cualquiera que la descubra buscando una solución para analizar las fuentes RSS de feedburner y pegar un código simple que tengo para obtener la última entrada del feedburner de Cracked.com . Lo he probado en algunos otros sitios y funciona bien.
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
Simplemente reemplace RSSurl con la dirección de la página de feedburner. Además, como probablemente pueda ver, si hay otros elementos que desee, puede agregar solo agregue una línea getElementsByTagName adicional allí, con lo que quiera obtener.
Editar: también, que yo sepa, funcionará con prácticamente cualquier fuente RSS.