python解析RSS(feedparser)


雖然說當今的博客已經不像前幾年那么火了,但是RSS還是一項很有創造性和實用性的東西。RSS 是用於分發 Web 站點上的內容的摘要的一種簡單的 XML 格式。它能夠用於共享各種各樣的信息。關於RSS的詳細信息在(http://www.rssboard.org/rss-profile),這里面詳細的講了各種值的含義(雖然各個版本的支持不太一樣,但是還是比較有通用性的)。這里我先介紹一下怎么使用feedparser操作RSS然后再介紹一些常用的屬性,也方便大家實驗:
一、feedparser的安裝
首先就是下載源碼編譯安裝,另外用pip、easy-install也都可以安裝(神奇的是我自己的python直接有這個模塊了。。。)
二、feedparser的使用
不得不說feedparser非常的強大不僅是因為它對各種rss版本的兼容性非常好,而且使用起來很簡單,就一個函數(如假包換)
上代碼:

1  d = feedparser.parse('http://feed.cnblogs.com/blog/u/161528/rss')

可以看到就只有一個parse函數,這里傳入的是我的博客的rss地址,這時候rss的全部內容就都在這個d里面了
以博客園的rss為例介紹一些值的含義(個人理解可能會有錯誤歡迎指正)

首先給出簡化的我的博客的rss

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <feed xmlns="http://www.w3.org/2005/Atom">
 3     <title type="text">博客園_mrbean</title>
 4     <subtitle type="text">**********************</subtitle>
 5     <id>uuid:32303acf-fb5f-4538-a6ba-7a1ac4fd7a58;id=8434</id>
 6     <updated>2014-05-14T15:13:36Z</updated>
 7     <author>
 8         <name>mrbean</name>
 9         <uri>http://www.cnblogs.com/MrLJC/</uri>
10     </author>
11     <generator>feed.cnblogs.com</generator>
12     <entry>
13         <id>http://www.cnblogs.com/MrLJC/p/3715783.html</id>
14         <title type="text">用python讀寫excel(xlrd、xlwt) - mrbean</title>
15         <summary type="text">最近需要從多個excel表里面用各種方式整...</summary>
16         <published>2014-05-08T16:25:00Z</published>
17         <updated>2014-05-08T16:25:00Z</updated>
18         <author>
19             <name>mrbean</name>
20             <uri>http://www.cnblogs.com/MrLJC/</uri>
21         </author>
22         <link rel="alternate" href="http://www.cnblogs.com/MrLJC/p/3715783.html" />
23         <link rel="alternate" type="text/html" href="http://www.cnblogs.com/MrLJC/p/3715783.html" />
24         <content type="html">最近需要從多個excel表里面用各種方式整理一些數據,雖然說原來用過java做這類事情,但是由於最近在學python,所以當然就決定用python嘗試一下了。發現python果然簡潔很多。這里簡單記錄一下。(由於是用到什么學什么,所以不算太深入,高手勿噴,歡迎指導)一、讀excel表讀excel要用...&lt;img src="http://counter.cnblogs.com/blog/rss/3715783" width="1" height="1" alt=""/&gt;&lt;br/&gt;&lt;p&gt;本文鏈接:&lt;a href="http://www.cnblogs.com/MrLJC/p/3715783.html" target="_blank"&gt;用python讀寫excel(xlrd、xlwt)&lt;/a&gt;,轉載請注明。&lt;/p&gt;</content>
25     </entry>
26 </feed>

 

 這個里面的值就是我們得到的內容大部分都是見名知意的單詞,當然這些很多都是博客園的生成器自己家的。簡單說幾個不太明白的

1、generator:這個是生成這個訂閱源的工具,也就是博客園自己提供的生成器

2、entry:每篇博文的塊,所有的關於你某篇博客的內容都在這(有若干個塊,為了不太長我只保留了一個)

3、content:這個里面貌似是可以加html的嗎的,rss閱讀器展示的就是這的內容

下面的代碼演示了如何查詢這些內容:

 1 >>> import feedparser
 2 >>> feed=feedparser.parse("test.xml")
 3 >>> print feed.feed.title
 4 博客園_mrbean
 5 >>> print feed['feed']['title']
 6 博客園_mrbean
 7 >>> print feed.entries[0].id    #這個要注意
 8 http://www.cnblogs.com/MrLJC/p/3715783.html
 9 >>> print feed.entries[0].content
10 [{'base': u'', 'type': u'text/html', 'value': u'\u6700\u8fd1\u9700\u8981\u4ece\u591a\u4e2aexcel\u8868\u91cc\u9762\u7528\u5404\u79cd\u65b9\u5f0f\u6574\u7406\u4e00\u4e9b\u6570\u636e\uff0c\u867d\u7136\u8bf4\u539f\u6765\u7528\u8fc7java\u505a\u8fd9\u7c7b\u4e8b\u60c5\uff0c\u4f46\u662f\u7531\u4e8e\u6700\u8fd1\u5728\u5b66python\uff0c\u6240\u4ee5\u5f53\u7136\u5c31\u51b3\u5b9a\u7528python\u5c1d\u8bd5\u4e00\u4e0b\u4e86\u3002\u53d1\u73b0python\u679c\u7136\u7b80\u6d01\u5f88\u591a\u3002\u8fd9\u91cc\u7b80\u5355\u8bb0\u5f55\u4e00\u4e0b\u3002\uff08\u7531\u4e8e\u662f\u7528\u5230\u4ec0\u4e48\u5b66\u4ec0\u4e48\uff0c\u6240\u4ee5\u4e0d\u7b97\u592a\u6df1\u5165\uff0c\u9ad8\u624b\u52ff\u55b7\uff0c\u6b22\u8fce\u6307\u5bfc\uff09\u4e00\u3001\u8bfbexcel\u8868\u8bfbexcel\u8981\u7528...<img alt="" height="1" src="http://counter.cnblogs.com/blog/rss/3715783" width="1" /><br /><p>\u672c\u6587\u94fe\u63a5\uff1a<a href="http://www.cnblogs.com/MrLJC/p/3715783.html" target="_blank">\u7528python\u8bfb\u5199excel\uff08xlrd\u3001xlwt\uff09</a>\uff0c\u8f6c\u8f7d\u8bf7\u6ce8\u660e\u3002</p>', 'language': None}]

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM