RSS 解析之 feedpaser 2018-10-02

Posted qiulinzhang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RSS 解析之 feedpaser 2018-10-02相关的知识,希望对你有一定的参考价值。

参考:https://blog.csdn.net/lilong117194/article/details/77323673

RSS的相关介绍

  1. RSS的介绍:https://wikipedia.org/wiki/RSS
  2. RSS的XML格式介绍:http://www.w3school.com.cn/rss/rss_syntax.asp

feedparser

  1. feedparser安装
sudo pip install feedparser 
  1. 简化的 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,表明两个 &lt;a href="http://www.cnblogs.com/qiulinzhang/p/9724748.html" target="_blank"&gt;阅读全文&lt;/a&gt;</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) 对象 &lt;a href="http://www.cnblogs.com/qiulinzhang/p/9570867.html" target="_blank"&gt;阅读全文&lt;/a&gt;</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 解析日期问题

解析RSS数据

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

使用jQuery解析RSS

如何使用 JavaScript 解析 RSS 提要?

java使用Rome解析Rss的实例(转)