浅析Python RSS文件功能介绍

开发 后端
Mark Pilgrim 为Python RSS文件解析提供了一个新兴的模块,但是美中不足的是并不提供 RSS.py 所提供的所有的功能部件和选项。

Python RSS文件作为当今开发界非常流行的语言之一,目前有许许多多的门户网站和 Web 日志都使用了他们,这个也是可以与 RSS 一起工作的 Python 工具中的少数几个。

但它却提供了一个非常自由的解析器,它能很好的处理 RSS 世界中所有令人混乱的差异。以下摘自 rssparser.py 页面。如您所见,大多数 RSS 供给都很糟糕。无效的字符、未转义的 & 符号(Blogger 供给)、无效的实体(Radio 供给)和未转义以及无效的 HTML(通常为注册中心所提供的)。

或者只是 Python RSS文件元素和 RSS 1.0 元素的一个笼统的混合(可移动类型供给(Movable Type feeds))。还有许多太前沿的供给,就象 Aaron 的 feed。他将一个摘录放入描述元素中而将完整的文本放入 content:encoded 元素中(象 CDATA)。这是一个有效的 RSS 1.0,但没有人回真正使用它(除了 Aaron),几乎没有新闻聚集器支持它。

并且许多解析器还排斥它。其他解析器被 RSS 0.94 中的新元素(guid)所困惑(请参阅 Dave Winer 供给作为一个示例)。还有 Jon Udell 的供给,其中还有他才从创作中挑选出来的 fullitem 元素。XML 和 Web 服务会增加互操作性几乎已成定局,所以这样考虑其实很可笑。无论如何,设计 rssparser.py 目的就是要处理所有这些荒唐的情况。

安装 rssparser.py 也十分简单。请您下载 Python 文件(参阅参考资料),将“rssparser.py.txt”重命名为 “rssparser.py”。并将它复制到您的 PYTHONPATH 中。我同样建议您取得可选的 timeoutsocket 模块,它可以改进 Python 中的套接字操作的超时行为,这样有助于取得 RSS feeds 而不必为了防止错误就停止应用程序线程。

  1. import rssparser   #Parse the data, returns a tuple: (data for channels, data for items) 
  2.   channel, items = rssparser.parse("http://www.python.org/channews.rdf")   for item in items:  
  3.  #Each item is a dictionary mapping properties to values   print "RSS Item:", item.get('link', "(none)")
  4.    print "Title:", item.get('title', "(none)")   print "Description:", item.get('description', "(none)") 

如您所见,这段代码非常简单。RSS.py 和 rssparser.py 不能互相取代在很大程度上是因为前者有更多的功能部件,并且维护着 RSS 供给中更多的语法信息。后者更简单,并且是一个容错能力更强的解析器(RSS.py 解析器只能接受格式良好的 XML)。

一个和其他大多数语言(如C)的区别就是,一个模块的界限,完全是由每行的首字符在这一行的位置来决定的(而C语言是用一对花括号{}来明确的定出模块的边界的,与字符的位置毫无关系)。

这一点曾经引起过争议。因为自从C这类的语言诞生后,语言的语法含义与字符的排列方式分离开来,曾经被认为是一种程序语言的进步。不过不可否认的是,通过强制程序员们缩进(包括if,for和函数定义等所有需要使用模块的地方),Python RSS文件确实使得程序更加清晰和美观。

另外Python在其他部分的设计上也坚持了清晰划一的风格,这使得Python RSS文件称为一门易读性、易维护性好,并且被大量用户所欢迎的、用途广泛的语言。Python直接编写的程序段有时运行效率甚至高于用C编写的程序。

【编辑推荐】

  1. 有关Python系统文件进行介绍指导
  2. 如何正确的使用Python函数
  3. 对Python 构建工具进行详细介绍分析
  4. PythonAndroid浅析Python优势所在
  5. 如何使用Python模块解析配置文件?
责任编辑:chenqingxiang 来源: CSDN
相关推荐

2010-02-26 13:56:08

Python RSS

2009-07-03 09:44:39

实现RSS功能JSP技术

2009-07-07 13:45:52

JDK日志框架

2010-03-03 13:50:40

Python文件

2009-03-22 10:04:11

ChromeRSS浏览器

2009-07-14 14:28:31

MyEclipse E

2010-03-11 16:50:27

Python应用

2011-05-13 09:29:46

路由路由器

2010-03-01 14:40:00

Python RSS处

2010-02-25 13:35:27

WCF tcpTrac

2022-09-04 21:08:50

响应式设计Resize

2010-02-26 11:08:29

Python应用程序

2010-04-20 14:31:29

负载均衡功能

2013-03-19 14:16:51

Chrome浏览器

2009-03-25 09:15:00

GoogleChromeRSS

2010-03-05 13:53:38

Python Thre

2009-07-16 16:08:30

WebWork Act

2014-03-24 10:44:49

Windows AzuWindows Azu

2022-05-11 09:50:02

GitLinux

2010-07-29 11:03:53

Flex代码格式化
点赞
收藏

51CTO技术栈公众号