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" /&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 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}]

python解析RSS(feedparser),布布扣,bubuko.com

时间: 2024-12-28 18:05:05

python解析RSS(feedparser)的相关文章

python生成RSS(PyRSS2Gen)

既然能够用python解析rss,那么也顺带研究下生成rss. 其实很简单,只是生成一个比较特殊点的xml文档而已. 这里我使用了PyRss2Gen,用法很简单,看代码就知道了,如下: 1 import datetime 2 import PyRSS2Gen 3 4 rss = PyRSS2Gen.RSS2( 5 title = "Andrew's PyRSS2Gen feed", 6 link = "http://www.dalkescientific.com/Python

[ASP.Net]用RssToolKit2.0解析RSS,制作RSS阅读器

在Python要读取RSS可以使用FeedParser.那么在ASP.net里面呢?难道我们要自己发出request去取得XML,并且自己用XmlReader去解析XML里面的DOM对象吗? 当然不用这么麻烦啰. 在ASP.net里面,我们可以使用RssToolkit 2.0,这是一个开放源代码(Open Source)的RSS处理函数库.里面提供了很完善的RSS处理函数.你可以自己烧制RSS feed,也可以透过它去解析RSS. HI!我是finalevil,这是我的分站, 欢迎您订阅我的RS

python解析json文件

概念 序列化(Serialization):将对象的状态信息转换为可以存储或可以通过网络传输的过程,传输的格式可以是JSON.XML等.反序列化就是从存储区域(JSON,XML)读取反序列化对象的状态,重新创建该对象. JSON(JavaScript Object Notation):一种轻量级数据交换格式,相对于XML而言更简单,也易于阅读和编写,机器也方便解析和生成,Json是JavaScript中的一个子集. Python2.6开始加入了JSON模块,无需另外下载,Python的Json模

python解析json

认识 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集. JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等).这些特性使JSON成为理想的数据交换语言.易于人阅读和编写,同时也易于机器解析和生成. 引用模块

python 解析docx文档的方法,以及提取插入的文本对象和图片

首先安装docx模块,通过pip install docx或者在docx官方链接上下载安装都可以 下面来看下如何解析docx文档:文档格式如下 有3个部分组成 1 正文:text文档 2 一个表格. 3一个插入的文件对象.4 一个图片 这4个部分是我们在docx文档中最常见的几种格式.解析代码如下 import docx def docx_try():     doc=docx.Document(r'E:\py_prj\test.docx')     for p in doc.paragraph

python 解析命令行

原文 http://python.jobbole.com/87014 python解析命令行 2016/12/13 · 基础知识 · 命令行 分享到:0 原文出处: 顾慎为 getopt:和C中的getopt()等价.optparse:2.7后已不推荐使用.argparse:基于optparse的新库.docopt:根据文档描述,自动生成.另一份参考文档:docopt. 更详细的内容可参考上述文档. getopt 若对C的getopt()函数不熟悉,或者倾向于使用较少的代码,或者需要对帮助信息和

Python解析HDF文件

前段时间因为一个业务的需求需要解析一个HDF格式的文件.在这之前也不知道到底什么是HDF文件.百度百科的解释如下: HDF是用于存储和分发科学数据的一种自我描述.多对象文件格式.HDF是由美国国家超级计算应用中心NCSA(全称:National Center for Supercomputing Application)创建的,为了满足各种领域研究需求而研制的一种能高效存储和分发科学数据的新型数据格式.HDF可以表示出科学数据存储和分布的许多必要条件. 使用Python解析当然会用到第三方的包,

python解析xml文件操作的例子

python解析xml文件操作实例,操作XML文件的常见技巧. xml文件内容: <?xml version="1.0" ?> <!--Simple xml document__chapter 8--> <book> <title> sample xml thing </title> <author> <name> <first> ma </first> <last>

Python解析器源码加密系列之(二):一次使用标准c的FILE*访问内存块的尝试

摘要:由于近期打算修改Python解释器以实现pyc文件的加密/解密,出于保密的要求,解密之后的数据只能放在内存中,不能写入到文件中.但是后续的解析pyc文件的代码又只能接受FILE*作为入参,所以就提出了一种把通过FILE*来访问内存的需求,下文是针对这个需求的几个方面的尝试及其结论. 以下尝试的前提是:Win7 + VS2010. 在vc中,FILE其实就是_iobuf,定义如下: struct _iobuf { char *_ptr; //文件输入的下一个位置 int _cnt; //当前