Encontré varios ejemplos de su uso en aplicaciones sencillas de consola. La mayoría explicaba un ejemplo sencillo de como actualizar tu twitter desde python con este módulo pero, como no tengo twitter, pues me propuse hacer un lector rss para blogger ( MUY cutre, pero también MUY facilmente mejorable) con el fin de explicar su funcionamiento en líneas generales.
Para instalar este módulo en ubuntu no hay mas que teclear en consola
> sudo apt-get install python-feedparser
Bajo windows podéis descarlos desde aquí
Una vez descargado no tenéis más que descomprimirlo donde más os guste y desde la línea de comandos dirigíos a la carpeta en cuestión. Una vez dentro de ella tecleáis
> setup.py install
y listo. Ya tenemos feedparser listo para ser usado desde python.
Hay poco que explicar sobre él ya que es muy sencillo de utilizar. Voy a poner aquí dos o tres ejemplos básicos para que os hagáis una pequeña idea y luego que el código hable por si mismo!
>>> import feedparser
>>> blog = feedparser.parse('http://devnewbies.blogspot.com/feeds/posts/default')
>>> blog['feed']['title']
u'Todos somos NewBies'
>>> blog.feed.link
u'http://devnewbies.blogspot.com/'
>>> blog.version
'atom10'
Sencillo a más no poder. Y no digáis que no! Aquí abajo os dejo el código para que le echéis un vistazo. Y un poco más abajo un enlace con el archivo .py y el .zip del módulo para windows. El programilla funciona tanto en windows como en Ubuntu. Espero que os sirva de algo =)
#!/usr/bin/env python
# germaNRG'09 - http://devnewbies.blogspot.com
import sys
import re
def addRss(web):
if web[:7] != "http://": web = "http://" + web
if web[-1:] != "/": web += "/"
web += "feeds/posts/default"
return web
def removeTags(html):
inside = 0
text = ''
for char in html:
if char == '<':
inside = 1
continue
elif (inside == 1 and char == '>'):
inside = 0
continue
elif inside == 1: continue
else: text += char
return text
def badChars(text):
text = re.sub(" ","\n",text)
text = re.sub("--->","\n",text)
text = re.sub("\\u2026","...",text)
return text
try:
import feedparser
except:
print "FeedParser module is required"
sys.exit()
page = raw_input("Introduzca la direccion de bloger: ")
blog = addRss(page)
rss = feedparser.parse(blog)
try:
blogTitle = rss.feed.title
blogLink = rss.feed.link
except:
print "El blog introducido no responde. Compruebe la direccion."
sys.exit()
blogPosts = len(rss['entries'])
if not blogPosts:
print "Este blog no contiene entradas."
sys.exit()
print "El blog tiene disponibles %s entradas." % blogPosts
req = raw_input("Que entrada desea leer: ")
req = int(req)
req += 1
entTitle = rss.entries[req].title
print "\n\nTitulo del blog: %s" % blogTitle
print "Entrada: %s" % entTitle
ent = rss.entries[req]
entLink = ent.link
entAuthorName = ent.author_detail.name
entAuthorMail = ent.author_detail.email
entDate = ent.updated_parsed ## Devuelve un time.struct_time
try:
entData = ent.content[0]['value']
plainText = removeTags(entData)
plainText = badChars(plainText)
noData = 0
except:
noData = 1
print "Autor del blog: %s" % entAuthorName
print "Mail del autor: %s \n\n" % entAuthorMail
try:
print "Contenido de la entrada:"
print plainText[:150]+"...\n"
print "Para verla completa dirijase a: %s" % entLink
except:
print "No se pudo previsualizar la entrada."
print "Para verla online dirijase a: %s" % entLink
Descarga el programa para leer tus blogs de Blogger favoritos mas el módulo feedparser desde aquí:
blogger.rar
germaNRG'09
hola me puedes pasar el rar de programa porfa :)
ResponderEliminarvisiten disenamentes.blogspot.com
ResponderEliminarjajajaja no tienes ningun ruso visitante XD
ResponderEliminar