虽然说当今的博客已经不像前几年那么火了,但是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要用...<img src="http://counter.cnblogs.com/blog/rss/3715783" width="1" height="1" alt=""/><br/><p>本文链接:<a href="http://www.cnblogs.com/MrLJC/p/3715783.html" target="_blank">用python读写excel(xlrd、xlwt)</a>,转载请注明。</p></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'u6700u8fd1u9700u8981u4eceu591au4e2aexcelu8868u91ccu9762u7528u5404u79cdu65b9u5f0fu6574u7406u4e00u4e9bu6570u636euff0cu867du7136u8bf4u539fu6765u7528u8fc7javau505au8fd9u7c7bu4e8bu60c5uff0cu4f46u662fu7531u4e8eu6700u8fd1u5728u5b66pythonuff0cu6240u4ee5u5f53u7136u5c31u51b3u5b9au7528pythonu5c1du8bd5u4e00u4e0bu4e86u3002u53d1u73b0pythonu679cu7136u7b80u6d01u5f88u591au3002u8fd9u91ccu7b80u5355u8bb0u5f55u4e00u4e0bu3002uff08u7531u4e8eu662fu7528u5230u4ec0u4e48u5b66u4ec0u4e48uff0cu6240u4ee5u4e0du7b97u592au6df1u5165uff0cu9ad8u624bu52ffu55b7uff0cu6b22u8fceu6307u5bfcuff09u4e00u3001u8bfbexcelu8868u8bfbexcelu8981u7528...<img alt="" height="1" src="http://counter.cnblogs.com/blog/rss/3715783" width="1" /><br /><p>u672cu6587u94feu63a5uff1a<a href="http://www.cnblogs.com/MrLJC/p/3715783.html" target="_blank">u7528pythonu8bfbu5199exceluff08xlrdu3001xlwtuff09</a>uff0cu8f6cu8f7du8bf7u6ce8u660eu3002</p>', 'language': None}]