2009-11-04 12 views
6

Sto usando la libreria feedparser in python per recuperare le notizie da un giornale locale (il mio intento è quello di eseguire Natural Language Processing su questo corpus) e vorrei poter recuperare molti passati voci dal feed RSS.Feedparser - recupera i vecchi messaggi da Google Reader

Non conosco molto bene i problemi tecnici dell'RSS, ma penso che questo dovrebbe essere possibile (vedo che Google Reader e Feedly possono fare questo "on demand" mentre sposto la barra di scorrimento).

Quando faccio la seguente:

import feedparser 

url = 'http://feeds.folha.uol.com.br/folha/emcimadahora/rss091.xml' 
feed = feedparser.parse(url) 
for post in feed.entries: 
    title = post.title 

ottengo solo una dozzina di voci o giù di lì. Stavo pensando a centinaia. Forse tutte le voci nell'ultimo mese, se possibile. È possibile farlo solo con feedparser?

Ho intenzione di ottenere dal feed rss solo il collegamento alla notizia e analizzare la pagina intera con BeautifulSoup per ottenere il testo che voglio. Una soluzione alternativa sarebbe un crawler che segue tutti i link locali nella pagina per ottenere molte notizie, ma per ora voglio evitarlo.

-

Una soluzione che è apparso è quello di utilizzare la cache di Google Reader RSS:

http://www.google.com/reader/atom/feed/http://feeds.folha.uol.com.br/folha/emcimadahora/rss091.xml?n=1000

Ma per accedere a questo devo essere loggato per Google Reader. Qualcuno sa come lo faccio da Python? (Io davvero non so nulla del web, di solito mi pasticcio solo con il calcolo numerico).

risposta

9

Stai ricevendo solo una dozzina di voci, perché è quello che contiene il feed. Se vuoi dati storici devi trovare un feed/database di tali dati.

Controlla questo ReadWriteWeb article per alcune risorse sulla ricerca di dati aperti sul Web.

Nota che Feedparser non ha nulla a che fare con questo come suggerisce il tuo titolo. Feedparser analizza ciò che gli dai. Non può trovare dati storici a meno che non li trovi e li trasmettano. È semplicemente un parser. Spero che chiarisca le cose! :)

+0

Grazie ancora Bartek. Penso di capirlo meglio ora. Quindi l'RSS è semplicemente un file xml memorizzato nel server? Ho avuto l'immagine sbagliata a riguardo ... pensavo che fosse un "protocollo" per ottenere un feed di testo. Grazie ancora. –

3

Per espandere la risposta di Bartek: è anche possibile iniziare a memorizzare tutte le voci nel feed che hai già visto e creare il tuo archivio storico del contenuto del feed. Ciò ritarderebbe la tua capacità di iniziare ad usarlo come un corpus (perché dovresti farlo per un mese per costruire una raccolta di entrate di un mese), ma non dovresti dipendere da nessun altro per i dati .

Potrei sbagliarmi, ma sono abbastanza sicuro che è così che Google Reader può tornare indietro nel tempo: hanno le voci passate di ciascun feed memorizzate da qualche parte.

+0

Hummm ... Credo che la via da seguire sia quella di ottenere il feed da Google Reader stesso, forse? –

+1

Sembra che Google Reader stesso possa essere utilizzato per recuperare un elenco storico di elementi! : D http://googlesystem.blogspot.com/2007/06/reconstruct-feeds-history-using-google.html –

+0

Ho appena scoperto anche questo. Ecco gli ultimi 100 articoli nel feed a cui sei interessato: http://www.google.com/reader/atom/feed/http://feeds.folha.uol.com.br/folha/emcimadahora/rss091. xml?n = 1000 –

Problemi correlati