RSS 解析之 feedpaser 2018-10-02
Posted qiulinzhang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RSS 解析之 feedpaser 2018-10-02相关的知识,希望对你有一定的参考价值。
参考:https://blog.csdn.net/lilong117194/article/details/77323673
RSS的相关介绍
- RSS的介绍:https://wikipedia.org/wiki/RSS
- RSS的XML格式介绍:http://www.w3school.com.cn/rss/rss_syntax.asp
feedparser
- feedparser安装
sudo pip install feedparser
- 简化的 rss.xml
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title type="text">博客园_默写年华</title>
<subtitle type="text"></subtitle>
<id>uuid:70a1ed00-25f2-44e5-b74e-7e9f1e384f1c;id=5134</id>
<updated>2018-09-29T09:06:43Z</updated>
<author>
<name>默写年华</name>
<uri>http://www.cnblogs.com/qiulinzhang/</uri>
</author>
<generator>feed.cnblogs.com</generator>
<entry>
<id>http://www.cnblogs.com/qiulinzhang/p/9724748.html</id>
<title type="text">Pearson Correlation Coefficient 2018-09-29 - 默写年华</title>
<summary type="text">Pearson Correlation Coefficient 皮尔逊相关系数 皮尔森相关系数是用来反映两个变量线性相关程度的统计量 样本的简单相关系数一般用r表示,其中n 为样本量, 分别为两个变量的观测值和均值。r描述的是两个变量间线性相关强弱的程度。r的取值在 1与+1之间,若r 0,表明两个</summary>
<published>2018-09-29T09:07:00Z</published>
<updated>2018-09-29T09:07:00Z</updated>
<author>
<name>默写年华</name>
<uri>http://www.cnblogs.com/qiulinzhang/</uri>
</author>
<link rel="alternate" href="http://www.cnblogs.com/qiulinzhang/p/9724748.html" />
<link rel="alternate" type="text/html" href="http://www.cnblogs.com/qiulinzhang/p/9724748.html" />
<content type="html">【摘要】Pearson Correlation Coefficient 皮尔逊相关系数 皮尔森相关系数是用来反映两个变量线性相关程度的统计量 样本的简单相关系数一般用r表示,其中n 为样本量, 分别为两个变量的观测值和均值。r描述的是两个变量间线性相关强弱的程度。r的取值在 1与+1之间,若r 0,表明两个 <a href="http://www.cnblogs.com/qiulinzhang/p/9724748.html" target="_blank">阅读全文</a></content>
</entry>
<entry>...</entry>
<entry>...</entry>
<entry>...</entry>
<entry>...</entry>
<entry>...</entry>
<entry>...</entry>
<entry>...</entry>
<entry>...</entry>
<entry>
<id>http://www.cnblogs.com/qiulinzhang/p/9570867.html</id>
<title type="text">sizeof()的用法 - 默写年华</title>
<summary type="text">1. 定义 sizeof 是一个操作符 operator ,不是一个函数, 其作用是返回一个对象或类型所占的内存字节数 2. 语法 sizeof object; //sizeof 对象 sizeof(object); sizeof(type_name); // 例如 sizeof(int) 对象</summary>
<published>2018-09-01T08:53:00Z</published>
<updated>2018-09-01T08:53:00Z</updated>
<author>
<name>默写年华</name>
<uri>http://www.cnblogs.com/qiulinzhang/</uri>
</author>
<link rel="alternate" href="http://www.cnblogs.com/qiulinzhang/p/9570867.html" />
<link rel="alternate" type="text/html" href="http://www.cnblogs.com/qiulinzhang/p/9570867.html" />
<content type="html">【摘要】1. 定义 sizeof 是一个操作符 operator ,不是一个函数, 其作用是返回一个对象或类型所占的内存字节数 2. 语法 sizeof object; //sizeof 对象 sizeof(object); sizeof(type_name); // 例如 sizeof(int) 对象 <a href="http://www.cnblogs.com/qiulinzhang/p/9570867.html" target="_blank">阅读全文</a></content>
</entry>
</feed>
然后用feedparser
对其进行解析:
>>> import feedparser
>>> feed = feedparser.parse(‘rss.xml‘)
>>> print feed[‘feed‘][‘title‘]
博客园_默写年华
>>> print feed.feed.title #通过属性访问
博客园_默写年华
>>> print feed.entries[0].id #对应上面第一个 entry 的 id
http://www.cnblogs.com/qiulinzhang/p/9724748.html
>>> print feed[‘entries‘][-1][‘summary‘] #对应于最后一个 entry的 summary
1. 定义 sizeof 是一个操作符 operator ,不是一个函数, 其作用是返回一个对象或类型所占的内存字节数 2. 语法 sizeof object; //sizeof 对象 sizeof(object); sizeof(type_name); // 例如 sizeof(int) 对象
>>> len(feed[‘entries‘])
10
注意:中文乱码问题:
unicode编码在元组中不会显示中文,只会以编码形的格式显示,在格式的前面有一个u,表示unicode,因此单独打印print feed[‘feed‘][‘title‘]
才不会以元祖形式打印,这样才能打出中文
python2 默认是ASCII
,而python3 默认是unicode
,因此:
在python2 的情况下 print feed[‘feed‘]
打出来的都是 unicode
在python3 的情况下print feed[‘feed‘]
可以正确打出中文
参考:http://blog.51cto.com/daimalaobing/2046659
以上是关于RSS 解析之 feedpaser 2018-10-02的主要内容,如果未能解决你的问题,请参考以下文章
C# SyndicationFeed - RSS 解析日期问题