Python - RSS Feed

RSS (Rich Site Summary) é um formato para entrega de conteúdo da web que muda regularmente. Muitos sites relacionados a notícias, weblogs e outros editores online distribuem seu conteúdo como um RSS Feed para quem quiser. Em python, usamos o pacote abaixo para ler e processar esses feeds.

pip install feedparser

Estrutura de Alimentação

No exemplo a seguir, obtemos a estrutura do feed para que possamos analisar mais a fundo quais partes do feed desejamos processar.

import feedparser
NewsFeed = feedparser.parse("https://timesofindia.indiatimes.com/rssfeedstopstories.cms")
entry = NewsFeed.entries[1]
print entry.keys()

Quando executamos o programa acima, obtemos a seguinte saída -

['summary_detail', 'published_parsed', 'links', 'title', 'summary', 'guidislink', 'title_detail', 'link', 'published', 'id']

Título e postagens do feed

No exemplo abaixo lemos o título e o cabeçalho do feed rss.

import feedparser
NewsFeed = feedparser.parse("https://timesofindia.indiatimes.com/rssfeedstopstories.cms")
print 'Number of RSS posts :', len(NewsFeed.entries)
entry = NewsFeed.entries[1]
print 'Post Title :',entry.title

Quando executamos o programa acima, obtemos a seguinte saída -

Number of RSS posts : 5
Post Title : Cong-JD(S) in SC over choice of pro tem speaker

Detalhes do feed

Com base na estrutura de entrada acima, podemos derivar os detalhes necessários do feed usando o programa Python, conforme mostrado abaixo. Como a entrada é um dicionário, utilizamos suas chaves para produzir os valores necessários.

import feedparser
NewsFeed = feedparser.parse("https://timesofindia.indiatimes.com/rssfeedstopstories.cms")
entry = NewsFeed.entries[1]
print entry.published
print "******"
print entry.summary
print "------News Link--------"
print entry.link

Quando executamos o programa acima, obtemos a seguinte saída -

Fri, 18 May 2018 20:13:13 GMT
******
Controversy erupted on Friday over the appointment of BJP MLA K G Bopaiah as pro tem speaker for the assembly, with Congress and JD(S) claiming the move went against convention that the post should go to the most senior member of the House. The combine approached the SC to challenge the appointment. Hearing is scheduled for 10:30 am today.
------News Link--------
https://timesofindia.indiatimes.com/india/congress-jds-in-sc-over-bjp-mla-made-pro-tem-speaker-hearing-at-1030-am/articleshow/64228740.cms