使用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如何使用Array和ArrayList做同样的事情?   用户界面使Java JScrollpane仅垂直滚动   查找字符串中最长的重复子字符串所需的算法Java函数?   java我想在listview中检索firebase数据   java如何使用Jsoup提取链接?   java 安卓。看法使用RTEditor时发生充气异常   maven为什么自动依赖是错误版本?(java.lang.ClassNotFoundException:org.junit.jupiter.api.MethodOrderContext)   使用apachespark进行java开发   java glDrawBuffers是否应该翻转IntBuffer?   java在添加回调之前完成CompletableFuture<T>   用Java构建搜索树   java将web应用程序部署到Heroku   active directory Java LDAP:属性为只读   启动Spring启动应用程序时未考虑java DB端口   使用Mockito的java模拟   C++从运行时运行java的过程。执行出口代码139   javascript使用脚本删除旧SonarQube项目   java代理每节点模型?   java无法在Android上通过Internet从PC服务器接收UDP数据   在bluemix:java上加载p12时发生ibm云错误。木卫一。IOException:数据不足