如何使用任意标签和附件生成RSS

时间:2009-11-19 21:51:20

标签: python rss feedparser

现在,我正在使用PyRSS2Gen生成一个RSS文档(重新解析用feedparser解析的rss feed的修改),但我无法弄清楚如何在项目中添加不常见的标记。

items = [
PyRSS2Gen.RSSItem(
    title = x.title,
    link = x.link,
    description = x.summary,
    guid = x.link,
    pubDate = datetime(
        x.modified_parsed[0],
        x.modified_parsed[1],
        x.modified_parsed[2],
        x.modified_parsed[3],
        x.modified_parsed[4],
        x.modified_parsed[5])
    )

for x in parsed_feed.entries]

rss = PyRSS2Gen.RSS2(
    title = "Resyndicator",
    link = parsed_feed['feed'].get("link"),
    description = "etc",

    language = parsed_feed['feed'].get("language"),    
    copyright = parsed_feed['feed'].get("copyright"),
    managingEditor = parsed_feed['feed'].get("managingEditor"),
    webMaster = parsed_feed['feed'].get("webMaster"),
    pubDate = parsed_feed['feed'].get("pubDate"),
    lastBuildDate = parsed_feed['feed'].get("lastBuildDate"),

    categories = parsed_feed['feed'].get("categories"),
    generator = parsed_feed['feed'].get("generator"),
    docs = parsed_feed['feed'].get("docs"),

    items = items
)

原始Feed包含<show_id></show_id>标记以及附件 <enclosure url="http://url.com" length="10" type="" />我需要将其包含在生成的版本中。

2 个答案:

答案 0 :(得分:1)

The documentation explains:

  

添加你的   自己的属性(名称空间需要)   声明),重新定义   您的element_attrsrss_attrs   子类[RSSRSSData]。

这是关于子类化的重点,不是吗? :)

答案 1 :(得分:1)

有两种方法。首先,您可以直接更改代码。编辑“发布”并将您想要的任何内容放在任何地方。

但是如果您想从文档中获取建议,请从RSS2派生并实现您自己的publish_extensions,如下所示:

class YourRSS2Item(PyRSS2Gen.RSSItem):
    def publish_extensions(self, handler):
        handler.startElement("show_id")
        handler.endElement("show_id")

'handler'遵循SAX2 API(start_element,characters,end_element)。

至于制作机箱,请使用Enclosure类,如

item = RSSItem( .... enclosure = Enclosure("http://url.com", 10, ""), ...)