Python - RSS Feed

RSS (Rich Site Summary) เป็นรูปแบบสำหรับการนำเสนอเนื้อหาเว็บที่มีการเปลี่ยนแปลงเป็นประจำ เว็บไซต์ที่เกี่ยวข้องกับข่าวเว็บบล็อกและผู้เผยแพร่ออนไลน์อื่น ๆ หลายรายจะรวบรวมเนื้อหาของตนเป็น RSS Feed ให้กับทุกคนที่ต้องการ ใน python เราใช้ความช่วยเหลือจากแพ็คเกจด้านล่างเพื่ออ่านและประมวลผลฟีดเหล่านี้

pip install feedparser

โครงสร้างฟีด

ในตัวอย่างด้านล่างเราได้รับโครงสร้างของฟีดเพื่อให้เราสามารถวิเคราะห์เพิ่มเติมเกี่ยวกับส่วนของฟีดที่เราต้องการประมวลผล

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

เมื่อเรารันโปรแกรมข้างต้นเราจะได้ผลลัพธ์ดังต่อไปนี้ -

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

ชื่อฟีดและโพสต์

ในตัวอย่างด้านล่างเราอ่านชื่อเรื่องและส่วนหัวของฟีด 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

เมื่อเรารันโปรแกรมข้างต้นเราจะได้ผลลัพธ์ดังต่อไปนี้ -

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

รายละเอียดฟีด

จากโครงสร้างรายการด้านบนเราสามารถรับรายละเอียดที่จำเป็นจากฟีดโดยใช้โปรแกรม python ดังที่แสดงด้านล่าง เนื่องจากรายการเป็นพจนานุกรมเราจึงใช้คีย์เพื่อสร้างค่าที่จำเป็น

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

เมื่อเรารันโปรแกรมข้างต้นเราจะได้ผลลัพธ์ดังต่อไปนี้ -

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