Saltar al contenido

Usando Feedparser en Python – PythonForBeginners.com

Visión general

En esta publicación, veremos cómo podemos descargar y analizar archivos distribuidos.
se alimenta con Python.

El módulo de Python que usaremos para eso es “Feedparser”.

La documentación completa se puede encontrar aquí.

¿Qué es RSS?

RSS son las siglas de Rich Site Summary y utiliza formatos de alimentación web estándar para publicar.
información actualizada con frecuencia: entradas de blogs, titulares de noticias, audio, video.

Un documento RSS (llamado “fuente”, “fuente web” o “canal”) incluye información completa o
texto resumido y metadatos, como la fecha de publicación y el nombre del autor. [source]

¿Qué es Feedparser?

Feedparser es una biblioteca de Python que analiza feeds en todos los formatos conocidos, incluidos
Atom, RSS y RDF. Se ejecuta en Python 2.4 hasta 3.3. [source]

Elementos RSS

Antes de instalar el módulo feedparser y comenzar a codificar, echemos un vistazo
en algunos de los elementos RSS disponibles.

Los elementos más utilizados en los feeds RSS son “título”, “enlace”, “descripción”,
“Fecha de publicación” e “ID de entrada”.

Los elementos que se utilizan con menos frecuencia son “imagen”, “categorías”, “adjuntos”.
y “nube”.

Instalar Feedparser

Para instalar feedparser en su computadora, abra su terminal e instálelo usando
pepita” (Una herramienta para instalar y administrar paquetes de Python)

sudo pip instalar feedparser

Para verificar que feedparser esté instalado, puede ejecutar una “lista de pip”.

Por supuesto, también puede ingresar al modo interactivo e importar el analizador de fuentes
módulo allí.

Si ve una salida como la siguiente, puede estar seguro de que está instalada.

>>> import feedparser
>>>

Ahora que hemos instalado el módulo feedparser, podemos continuar y comenzar
trabajar con él.

Entrenamiento de Python recomendado

Para el entrenamiento de Python, nuestra principal recomendación es DataCamp.

Obtener la fuente RSS

Puede utilizar cualquier fuente RSS que desee. Ya que me gusta leer Reddit, Usaré
eso para mi ejemplo.

Reddit se compone de muchos sub-reddits, el que me interesa especialmente por
ahora es el sub-reddit “Python”.

La forma de obtener el feed RSS es simplemente buscar la URL de ese sub-reddit y
agregue un “.rss”.

La fuente RSS que necesitamos para python sub-reddit sería:
http://www.reddit.com/r/python/.rss

Usando Feedparser

Empiece su programa con la importación del módulo feedparser.

import feedparser

Crea el feed. Inserte la fuente RSS que desee.

d = feedparser.parse('http://www.reddit.com/r/python/.rss')

Los elementos del canal están disponibles en d.feed (recuerde los “Elementos RSS” arriba)

Los elementos están disponibles en d.entries, que es una lista.

Puede acceder a los elementos de la lista en el mismo orden en que aparecen en el
feed original, por lo que el primer elemento está disponible en d.entries[0].

Imprime el título del feed

print d['feed']['title']

>>> Python

Resuelve enlaces relativos

print d['feed']['link']

>>> http://www.reddit.com/r/Python/

Analizar HTML escapado

print d.feed.subtitle

>>> news about the dynamic, interpreted, interactive, object-oriented, extensible
programming language Python

Ver número de entradas

print len(d['entries'])

>>> 25

Cada entrada del feed es un diccionario. Usar [0] para imprimir la primera entrada.

print d['entries'][0]['title'] 

>>> Functional Python made easy with a new library: Funcy

Imprime la primera entrada y su enlace

print d.entries[0]['link'] 

>>> http://www.reddit.com/r/Python/comments/1oej74/functional_python_made_easy_with_a_new_
library/

Utilice un bucle for para imprimir todas las publicaciones y sus enlaces.

for post in d.entries:
    print post.title + ": " + post.link + "
"

>>>
Functional Python made easy with a new library: Funcy: http://www.reddit.com/r/Python/
comments/1oej74/functional_python_made_easy_with_a_new_
library/

Python Packages Open Sourced: http://www.reddit.com/r/Python/comments/1od7nn/
python_packages_open_sourced/

PyEDA 0.15.0 Released: http://www.reddit.com/r/Python/comments/1oet5m/
pyeda_0150_released/

PyMongo 2.6.3 Released: http://www.reddit.com/r/Python/comments/1ocryg/
pymongo_263_released/
.....
.......
........

Informa el tipo y la versión del feed

print d.version      

>>> rss20

Acceso completo a todos los encabezados HTTP

print d.headers          	

>>> 
{'content-length': '5393', 'content-encoding': 'gzip', 'vary': 'accept-encoding', 'server':
"'; DROP TABLE servertypes; --", 'connection': 'close', 'date': 'Mon, 14 Oct 2013 09:13:34
GMT', 'content-type': 'text/xml; charset=UTF-8'}

Solo obtenga el tipo de contenido del encabezado

print d.headers.get('content-type')

>>> text/xml; charset=UTF-8

El analizador de feeds es una forma fácil y divertida de analizar feeds RSS.

Fuentes

http://www.slideshare.net/LindseySmith1/feedparser
http://code.google.com/p/feedparser/

Entrenamiento de Python recomendado

Para el entrenamiento de Python, nuestra principal recomendación es DataCamp.