【问题标题】:Django rss media content parsingDjango rss 媒体内容解析
【发布时间】:2020-12-09 14:28:59
【问题描述】:

需要帮助。我正在尝试在 django 中构建基于 rss 的提要。但我发现 media:content (url、medium、height 和 width) 很棘手。

我看了又看,结果是这样的:


class CustomFeed(Rss201rev2Feed):
    def add_item_elements(self, handler, item):
        super().add_item_elements(handler, item)
        handler.addQuickElement("image", item["image"])

class Rss(Feed):
    feed_type = CustomFeed
    title = "#Title of the item"
    link = "/feeds/"
    description = "#Description of the item"

    def item_extra_kwargs(self, item):
        img_url = item.image.medium.url
        request_url = self.request.build_absolute_uri('/')[:-1]
        image_url_abs = f"{request_url}{img_url}"

        return {
            'image': image_url_abs
        }

但这给了我在 rss 提要中独立的图像:

<image>https://www.url.com/image.jpg</image>

我非常需要代码来返回这个:

<media:content url="https://www.url.com/image.jpg" medium="image" height="640" width="362"/> 

请帮忙。

【问题讨论】:

    标签: python django parsing rss feed


    【解决方案1】:

    类 CustomFeed(Rss201rev2Feed): def root_attributes(self): attrs = super(CustomFeed, self).root_attributes() # attrs['xmlns:dc'] = "http://purl.org/dc/elements/1.1/" attrs['xmlns:media'] ='http://search.yahoo.com/mrss/' 返回属性

    def add_root_elements(self, handler):
        super(CustomFeed, self).add_root_elements(handler)
        thumbnail = dict(url=self.feed['image_url'])
        thumbnail['medium'] = str(self.feed['medium'])
        thumbnail['height'] = str(self.feed['height'])
        thumbnail['width'] = str(self.feed['width'])
        handler.addQuickElement('media:content', '', thumbnail)
    

    【讨论】:

      【解决方案2】:

      类 Rss(Feed):

      link = 'http://www.example.com'
      feed_type = CustomFeed
      title = 'LatestItems'
      description = 'Latest Items'
      

      def feed_extra_kwargs(self, obj): 返回 { 'image_url': self.link + '/image.jpg', “身高”:433, “中”:“图像”, “宽度”:500, }

      【讨论】:

      • 谢谢。但这个解决方案的问题是 /image.jpg 是静态文本.. 但我有一个图像字段名称 item.image.medium.url
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-11
      • 1970-01-01
      相关资源
      最近更新 更多