Pregunta

Estoy intentando descargar un corpus de noticias (para tratar de hacer algo de procesamiento de lenguaje natural) de Google Noticias mediante el feedparser universal con el pitón. Realmente no sé nada de XML, sólo estoy usando un ejemplo de cómo utilizar el feedparser. El problema es que no puedo encontrar en el dict que recibo de la fuente RSS del contenido de de las noticias sólo el título.

El código actualmente estoy tratando de utilizar es la siguiente:

import feedparser
url = 'http://news.google.com.br/news?pz=1&cf=all&ned=us&hl=en&output=rss' 
# just some GNews feed - I'll use a specific search later

feed = feedparser.parse(url)
for post in feed.entries:
   print post.title
   print post.keys()

Las teclas que recibo en este post son sólo el título, resumen, fecha, etc ... No hay ningún contenido.

Es esto algún problema con Google News o estoy haciendo algo mal? ¿Hay una manera de hacerlo?

¿Fue útil?

Solución

¿Ha examinado la alimentación de noticias de Google?

Hay un elemento raíz en cada alimentación que contiene un montón de información y las entradas reales dict. Aquí está una manera sucia para ver lo que está disponible:

import feedparser
d = feedparser.parse('http://news.google.com/news?pz=1&cf=all&ned=ca&hl=en&topic=w&output=rss')

print [field for field in d]

Por lo que podemos ver, tenemos un campo entries que muy probablemente contiene .. entradas noticias! Si:

import pprint
pprint.pprint(entry for entry in d['entries'])

Tenemos algo más de información :) que va a mostrar todos los campos relacionados con cada entrada de una manera bastante impreso (eso es lo que es para pprint)

Así que, para obtener todos los títulos de nuestras entradas noticias de esta alimentación:

titles = [entry.title for entry in d['entries']

Por lo tanto, jugar con eso. Con suerte eso es un comienzo útil

Otros consejos

Lo primero que necesita comprobar hacia fuera RSS Especificación . Y aquí hay una alimentación analizador . Eso debería empezar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top