社区编辑申请
注册/登录
浅析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
相关推荐

2022-06-12 06:48:34

2022-06-05 21:09:47

Python办公自动化

2022-06-15 08:25:07

Python天气数据可视化分析

2022-06-28 09:26:25

Python配置文件

2022-05-11 09:02:27

Python数据库Excel

2022-06-28 12:35:21

DockerPython

2022-06-10 09:04:24

Python读取文件代码

2022-06-17 09:08:27

代码Python内置库

2022-06-16 07:32:38

VSCodePython插件

2022-06-27 19:01:04

Python应用程序数据

2022-06-21 09:02:49

python技巧

2022-06-27 17:46:53

PythonFlask

2022-06-28 09:34:24

可视化Python代码

2022-06-15 09:54:51

PythonIDELinux

2022-05-25 07:11:13

2022-04-27 09:30:01

Python爬虫人工智能

2022-06-24 10:16:59

Python精选库

2022-06-22 09:56:19

PythonMySQL数据库

2022-06-16 16:08:00

Python初学者IDE

2022-05-17 09:14:50

聚类算法python

同话题下的热门内容

源码探秘:Python 中对象是如何被调用的?吐血推荐17个提升开发效率的“轮子”超全!Python 中常见的配置文件写法Pandas 新手容易犯的六个错误Python 中的万能之王 Lambda 函数整理了100个Python精选库,建议收藏!Python进行数据可视化,你会用什么库来做呢?Spring MVC中@InitBinder注解是如何应用的?

编辑推荐

使用Kotlin做开发一个月后的感想面试官问你什么是消息队列?把这篇甩给他!五大自动化测试的Python框架图文详解两种算法:深度优先遍历(DFS)和广度优先遍历(BFS)2018年最流行的十大编程语言,其中包括你用的语言吗?
我收藏的内容
点赞
收藏

51CTO技术栈公众号