1

现在,我正在使用 PyRSS2Gen 生成一个 RSS 文档(重新联合对使用 feedparser 解析的 rss 提要的修改),但我不知道如何向项目添加不常见的标签。

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
)

原始提要有一个<show_id></show_id>标签和一个附件 <enclosure url="http://url.com" length="10" type="" />,我也需要将其包含在生成的版本中。

4

2 回答 2

1

该文档解释说:

要添加您自己的属性(命名空间声明所需), 请在您的子类 [of和]中重新定义element_attrs或。rss_attrsRSSRSSData

这就是子类化的全部意义,不是吗?:)

于 2009-11-19T22:16:44.967 回答
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, ""), ...)
于 2009-11-25T06:58:28.660 回答