Sto cercando una buona libreria in python che mi consenta di analizzare i feed RSS. Qualcuno ha usato il feedparser? Qualche feedback?Libreria di parser di feed RSS in Python
risposta
Utilizzando feedparser è una scelta molto migliore rispetto a rotazione con il proprio minidom o BeautifulSoup.
- Normalizza le differenze tra tutte le versioni di RSS e Atom in modo da non dover disporre di codice diverso per ogni tipo.
- È utile rilevare diversi formati di data e altre variazioni nei feed.
- Segue automaticamente i reindirizzamenti HTTP.
- Elimina i contenuti HTML.
- Ha il supporto per ETag e le intestazioni dell'ultima modifica in modo da poter vedere se il feed è cambiato semplicemente scaricando l'header HTTP e non l'intero avanzamento.
- Ha il supporto per i feed autenticati.
- Ha il supporto per i proxy HTTP.
Come altri hanno già detto, basta provare. È come 2 linee di codice per analizzare un feed. La mia unica lamentela è che utilizza solo dizionari come modello di dati e alcuni attributi possono mancare nel dizionario se non fossero nel feed, quindi è necessario verificarlo nel proprio codice. Ma la documentazione è molto chiara su quali attributi saranno sempre nel dizionario e quali potrebbero essere mancanti.
Infine, posso garantire per questo, come ho scritto un'applicazione che lo utilizza. Vedi qui: http://www.feednotifier.com/
Grazie per la risposta! .. Sì, è una documentazione così bella e ben definita! .. facile da usare. !! Anche il tuo feed notifier è interessante! –
Sai di una libreria che prende l'output di feedparser e può trasformarlo in un feed? –
Attualmente c'è un problema che mi dà fastidio: feedparser sembra fallire su elementi "media:" nei feed di Flickr. È veramente noioso. Ho appena presentato un problema, speriamo di avere qualche soluzione abbastanza presto. – dguaraglia
Primo colpo su G.
Beh, l'ha menzionato nella domanda ... –
In ogni caso, avete qualche idea diversa dal feedpurser che è facile da usare? –
@ rahman.bd no, feedparser è troppo buono, a nessuno interesserebbe un'alternativa. –
In risposta alla vostra follow-up. Potresti usare BeautifulSoup, ma feedparser è molto più orientato verso la gestione degli RSS.
Non Snark - ma hai letto feedparsers documentation? Non so come potrebbe essere più semplice da usare.
Per il beneficio degli altri: feedparser.org è stato rimosso da Mark Pilgrim. Lo renderò disponibile come parte della prossima versione. –
Se volete un'alternativa, provare xml.dom.minidom. Come "Django è Python", "RSS is XML".
Nessun buon motivo per adottare questo approccio quando esiste feedparser. Dovresti gestire le differenze tra RSS e Atom, feed malformati, vari formati data/timestamp, ecc. – FogleBird
Feedparser è molto potente, configurabile e sooo facile da usare. Una curva di apprendimento molto amichevole, se non del tutto.
Esempio
Programatically determinare il numero di risposte alla tua domanda è:
easy_install feedparser
python -c 'import feedparser; print len(feedparser.parse("http://bit.ly/c785aj")["entries"])'
Puoi utilizzare .entries anziché ["entries"] poiché feedparser utilizza un dizionario personalizzato che consente l'accesso agli attributi. Più facile da digitare e leggere. – FogleBird
Grazie per l'esempio. @FogleBird Grazie per la spiegazione. –
lo consiglio vivamente feedparser.
So che questo è un argomento molto vecchio, ma per quello che vale, stavo usando feedparser (Universal Feed parser) versione 5.1.3 e ho recentemente modificato a speedparser (0.1.8) per motivi di prestazioni. Ha praticamente le stesse interfacce, ma funziona più velocemente.
Lo sto usando per un'applicazione amatoriale Python-for-Android e speedparser viene eseguito circa 5 volte più veloce nei miei feed.
Il download e la prova di feedparser richiederebbero 5 minuti. –
Scaricare e provare feedparser può richiedere solo 5 minuti, ma ci vorrebbe molto più tempo per usarlo a sufficienza per formarci un'opinione utile e affidabile come altri su SO. 5 minuti di utilizzo proverebbero solo che può essere installato e gestire il caso d'uso principale. – Trindaz