实用的 Python 之 feedparser

feedparser 号称是一个 universal feed parser,使用它我们可轻松地实现从任何 RSS 或 Atom 订阅源得到标题、链接和文章的条目了。

>>> import feedparser

为了建立直观,首先来看一个标准的 item:

<item>
<title><![CDATA[厦门公交车放火案死者名单公布<br/>警方公布嫌犯犯罪证据]]></title>
<link>http://www.infzm.com/content/91404</link>
<description><![CDATA[6月11日下午,厦门BRT公交车放火案47名死亡者名单公布。厦门政府新闻办6月10日发布消息称,有证据表明,陈水总携带汽油上了闽DY7396公交车。且有多名幸存者指认其在车上纵火,致使整部车引起猛烈燃烧。经笔迹鉴定,陈水总6月7日致妻、女的两封绝笔书系陈水总本人所写。]]></description>
<category>南方周末-热点新闻</category>
<author>infzm</author>
<pubDate>2013-06-11 11:24:32</pubDate>
</item>

feedparser 最为核心的函数自然是 parse() 解析 URL 地址的函数,它返回的究竟是什么样的内容呢?

>>> feedparser.parse()
{'bozo': 1,
 'bozo_exception': xml.sax._exceptions.SAXParseException('no element found'),
 'encoding': 'utf-8',
 'entries': [],
 'feed': {},
 'namespaces': {},
 'version': ''}

可以看到,得到是一个字典,’feed’(key) 对应的值(value)也是一个字典,’entries’ 则是 list。

基本用法

每个 RSS 和 Atom 订阅源都包含一个标题(d.feed.title)一组文章条目(d.entries)

通常,每个文章条目都有一段摘要(d.entries[i].summary),或者是包含了条目中实际文本的描述性标签(d.entries[i].description)

>>> import feedparser
>>> d = feedparser.parse('http://blog.csdn.net/lanchunhui/rss/list')
  • (1)d.feed

    >>> d['feed']['title']                             # feed 对应一个字典
    '以数学为生,终生学习数学'
    
    >>> d.feed.title                                   # 通过属性的方式访问
    '以数学为生,终生学习数学'
    
    >>> d.feed.link
    'http://blog.csdn.net/lanchunhui'
    
    >>> d.feed.subtitle
    '数学、编程、物理、文字(The nature of reality itself)'
  • (2)d.entries

    >>> type(d.entries)
    list
    >>> len(d.entries)
    20                                                             # 共20篇文章
    
    >>> [e.title for e in e.entries][:3]
    ['[原]Spark MLlib(一)正则化特征',
     '[原]Spark 基础 —— sc.broadcast',
     '[原]Scipy 基础 —— 稀疏矩阵']
    
    >>> d.entries[0].summary             # 第一篇文章的摘要信息
    >>> d.entries[0].summary == d.entries[0].description
    True
                            # 有些条目可能会不提供 summary 信息
                            # 此时 summary 信息可通过 description 获得

References

[1] python feedparser 使用

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五道口纳什

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值