Python - czytanie kanału RSS
RSS (Rich Site Summary) to format dostarczania regularnie zmieniających się treści internetowych. Wiele witryn związanych z wiadomościami, blogów i innych wydawców internetowych udostępnia swoje treści w postaci kanałów RSS każdemu, kto tego chce. W Pythonie korzystamy z poniższego pakietu, aby odczytywać i przetwarzać te kanały.
pip install feedparser
Struktura paszy
W poniższym przykładzie otrzymujemy strukturę źródła, abyśmy mogli dokładniej przeanalizować, które części kanału chcemy przetwarzać.
import feedparser
NewsFeed = feedparser.parse("https://timesofindia.indiatimes.com/rssfeedstopstories.cms")
entry = NewsFeed.entries[1]
print entry.keys()
Po uruchomieniu powyższego programu otrzymujemy następujący wynik -
['summary_detail', 'published_parsed', 'links', 'title', 'summary', 'guidislink', 'title_detail', 'link', 'published', 'id']
Tytuł kanału i posty
W poniższym przykładzie czytamy tytuł i nagłówek kanału 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
Po uruchomieniu powyższego programu otrzymujemy następujące dane wyjściowe -
Number of RSS posts : 5
Post Title : Cong-JD(S) in SC over choice of pro tem speaker
Szczegóły kanału
W oparciu o powyższą strukturę wpisów możemy uzyskać niezbędne szczegóły z kanału za pomocą programu w języku Python, jak pokazano poniżej. Ponieważ hasło jest słownikiem, używamy jego kluczy do tworzenia potrzebnych wartości.
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
Po uruchomieniu powyższego programu otrzymujemy następujące dane wyjściowe -
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