參考鏈接:http://blog.csdn.net/lanchunhui/article/details/51020566
feedparser是一個Python的Feed解析庫,可以處理RSS ,CDF,Atom 。使用它我們可從任何 RSS 或 Atom 訂閱源得到標題、鏈接和文章的條目了。
RSS(Really Simple Syndication,簡易信息聚合)是一種描述和同步網站內容的格式你可以認為是一種定制個性化推送信息的服務。它能夠解決你漫無目的的瀏覽網頁的問題。它不會過時,信息越是過剩,它的意義也越加彰顯。網絡中充斥着大量的信息垃圾,每天攝入了太多自己根本不關心的信息。讓自己關注的信息主動來找自己,且這些信息都是用戶自己所需要的,這就是RSS的意義。
parse() 方法
feedparser 最為核心的函數自然是 parse() 解析 URL 地址的函數。
我們知道,每個RSS和Atom訂閱源都包含一個標題(d.feed.title)和一組文章條目(d.entries)
通常每個文章條目都有一段摘要(d.entries[i].summary),或者是包含了條目中實際文本的描述性標簽(d.entries[i].description)
>>>import feedparser
>>>d=feedparser.parse('http://feed.cnblogs.com/blog/sitehome/rss')
d.feed
feed 對應的值也是一個字典
>>>d['feed']['title']
'博客園_首頁'
>>>d.feed.title #通過屬性的方式訪問
'博客園_首頁'
>>>d.feed.subtitle
'代碼改變世界'
>>>d.feed.link
'uuid:1b90fd0c-6080-4ea5-86b1-b87c64b95d69;id=4466'
d.entries
該屬性類型為列表,表示一組文章的條目
>>>type(d.entries) #類型為列表
<class 'list'>
>>>len(d.entries) #一共20篇文章
20
>>>[e.title for e in d.entries][:5] #列出前5篇文章的標題
['僵屍進程 - 烏龜運維', '深入淺出 spring-data-elasticsearch - 基本案例詳解(三 - 泥瓦匠BYSocket', 'js繼承 - huanglei-', 'ionic 使用了 crosswalkwebview 所產生的bug 及 解決方案 - FEer_llx', '關於並發你真的了解嗎?(二) - 心灬無痕']
>>>d.entries[0].summary #第一篇文章的摘要 和d.entries[0].description功能一樣
'在UNIX系統中,僵屍進程是指完成執行(通過exit系統調用,或運行時發生致命錯誤或收到終止信號所致)但在操作系統的進程表中仍 然有一個表項(進程控制塊PCB),處於”終止狀態“的進程。這發生於子進程需要保留表項以允許其父進程讀取子進程的exit status:一旦退出態通過wait系統調用讀取,僵屍'