使用python数据结构生成rss2

PyRSS2Gen的Python项目详细描述


pyrss2gen-1.1


用于生成rss 2.0提要的python库。


至少需要python2.3。(使用datetime模块作为时间戳。)
也适用于python 3.x


来安装:

%python setup.py install

这使用标准python安装程序。有关更多详细信息,请阅读http://docs.python.org/inst/inst.html


(只有一个文件,因此您可以在任何需要它的地方复制它。)


文档是在2003年编写的,这就是示例
有点过时的原因。别让这劝阻你!现在是2012年,很多人还在使用这个软件包。在这段时间里,已经有了(小的)
错误修复,甚至还有到python3的一个端口。




我环顾四周,虽然有很多阅读rss的方法,但写rss的方法却少得可怜。我可以使用dom或其他
构造,但我希望代码感觉像python。我可能会使用更多的pythonic api,比如efbot的elementtree,但是我也希望整数、日期和列表是真正的整数、日期和列表。(我希望半人马座阿尔法星的虫眼怪物是真实的,
半人马座阿尔法星的虫眼怪物-我问你的太多了吗?)

我发现的rss生成器是围绕打印语句构建的。
可行,但它们几乎总是遗漏了适当的html,以转义
排序,这将导致标记pilgrim's to write feed_parser,从而理解
既不是xml也不是html的文档。很烦人,但遗憾的是这一切都太普遍了。


所以我在
http://blogs.law.harvard.edu/tech/rss


link="http://www.dalkescientific.com/python/pyrss2gen.html",
description="关于pyrss2gen的最新消息,a"
"生成rss2提要的python库",


items=[
pyrs2gen.rssitem(
title="Pyrss2gen-0.0已发布",
link="http://www.dalke scientific.com/news/030906-pyrss2gen.html",
description="Dalke Scientific Today宣布Pyrss2gen-0.0,
"为Python生成RSS源的库。",
guid=pyrss2gen.guid("http://www.dalkescientific.com/news/"
"030906-pyrss2gen.html"),
pubdate=datetime.datetime(2003,9,6,21,31)),
pyrss2gen.rssitem(
title="关于生物信息学rss提要的想法",
link="http://www.dalkescientific.com/writings/diary/"
"archive/2003/09/06/rss.html",
description="我编写pyrss2gen的原因之一是"
"在"
"bioinformatic中使用rss进行数据收集的实验。"去年我遇到了…,
guid=pyrss2gen.guid("http://www.dalkescientific.com/writings/"
"diary/archive/2003/09/06/rss.html"),
pubdate=datetime.datetime(2003,9,6,21,49)),
]

rss.write_xml(open("pyrss2gen.xml","w")



输出不包含换行符,因此如果要阅读它,需要使用您喜爱的xml工具重新格式化它。

rss不是固定格式。人们可以自由添加各种元数据,
就像都柏林核心元素一样。

rss对象使用"publish"方法转换为xml,该方法使用sax2 contenthandler。如果需要不同的输出,请实现自己的"publish"。"简单"数据类型可以用可发布的对象,因此可以将元数据添加到"description"字段中。要支持rss和rssitem的新
元素,请从中派生并使用
"publish_extensions"挂钩。若要添加自己的属性(用于
命名空间声明),请在
子类中重新定义"element_attrs"或"rss_attrs"。

若要使用不同的编码,请创建自己的contenthandler,而不是使用"to_xml"和"write_xml"的helper方法。处理程序中的"characters"方法执行适当的
转换。

"categories"列表有些特殊。它需要是一个列表,
没有publish方法。这是因为rss规范对类别集没有明确的概念——rss2频道可以有0个或多个"category"元素,但没有"categories列表"——我的"categories"属性是api虚构的。

bugs:

软件包自2003年9月首次发布以来,报告了几个错误。所有这些都是固定的。
没有已知的错误。

pyrss2gen这个名字很有意思。它不认为想出一个可爱的名字是有用的。您可以考虑在使用此模块的任何代码中使用


import pyrss2gen as rss2

。我不会更改名称,因为
任何阅读"rss2"的人都可能认为它是一个解析器,而不是
生成器。另外,当前的名称很容易通过网络搜索找到。


许可证:

请参阅发行版中的文件许可证,或
http://www.opensource.org/licenses/bsd license.php
了解详细信息。

1.1的更改:2012年8月25日发布
-移植到python 3.x。感谢graham bell提供的初始补丁。

1.0的更改:2005年11月6日发布
-许多人(Richard Chamberlain、Daniel Hsu、Leonart Richardson和Daniel Holth)指出,guid设置"ispermalink"(带有
"l"而不是"l")。修正并更改了它,使ispermalink rss属性始终为"true"或"false",而不是假定空的意思为false。

-添加了erik de jonge和matsuno tokuhiro的补丁以设置
输出编码。

-实现了daniel hoth的建议,以转换存储模块
长度为字符串。


更改为0.1.1:于2003年9月发布
-追溯重命名为"0.0"为"0.1"
-修复了图像高度错误。多亏了爱德华·戴尔的帮助。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何使用JDOM设置布尔字段   java准备语句和语句/查询缓存   java Jpanel与JFrame菜单栏重叠   java比较两个JodaTime DateTime对象   java为什么Android Room@Query LIKE不返回已知存在的数据   使用Java和COM4J的Quality Center V11脚本统计   java获取当前登录用户的详细信息   如果页面上存在元素,如何在控制台中显示   java在GUI不更新信息时使用SWING和多线程处理GUI   java LOG4J2 RollingFile Appender未写入文件   java“new TextToSpeech.OnInitListener()”的颜色不鲜艳,这表明它没有被使用,如何使其可用?   java在paint方法中绘制形状   JAVA木卫一。文件旅游目的地?   java Struts2 dojo锚定标记不起作用?   java JavaFX ObservalElist和提取器更新事件在应该时未触发