zoukankan      html  css  js  c++  java
  • 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'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}]
  • 相关阅读:
    [20190415]10g下那些latch是共享的.txt
    [20190415]11g下那些latch是共享的.txt
    [20190409]pre_page_sga=true与连接缓慢的问题.txt
    [20190402]Library Cache mutex.txt
    scrapy简单使用方法
    PHP多进程系列笔(转)
    RdKafka文档翻译
    python判断字符串中是否包含子字符串
    python 逐行读取txt文件
    redis使用watch完成秒杀抢购功能(转)
  • 原文地址:https://www.cnblogs.com/MrLJC/p/3731213.html
Copyright © 2011-2022 走看看