【问题标题】:Get enclosure URL from RSS feed in JavaScript从 JavaScript 中的 RSS 提要获取附件 URL
【发布时间】:2016-07-02 09:21:47
【问题描述】:

我在这个论坛上尝试了其他答案,但没有任何运气。我正在尝试从 RSS 提要中提取每个条目的附件 URL(它包含 mp3 音频的直接链接),因此我可以创建一个包含所有音频的内置播放器的页面。

这是我目前所拥有的:

var FEED_URL = 'https://www.spreaker.com/show/1720272/episodes/feed';

$.ajax({
  url: document.location.protocol + '//ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=10&callback=?&q=' + encodeURIComponent(FEED_URL),
  dataType: 'json',
  success: function(data) {
    $(data).find("item").each(function(i) {
      var URL = $(this).find("enclosure").attr("url");
      console.log(URL);
    });
  }
})

以下是其中一项的示例:

      <item>
            <title>Episode 2 - 7 Minute Leadership</title>
            <link>https://www.spreaker.com/user/paul_falavolito/epsiode-2-7-minute-leadership</link>
            <description>Why should anyone be led by you?</description>
            <guid isPermaLink="false">https://api.spreaker.com/episode/8296378</guid>
            <pubDate>Tue, 19 Apr 2016 13:16:50 +0000</pubDate>
            <enclosure url="https://api.spreaker.com/download/episode/8296378/episode_2_7_minute_leadership.mp3" length="0" type="audio/mpeg"></enclosure>
            <itunes:author>Paul Falavolito</itunes:author>
            <itunes:subtitle>Why should anyone be led by you?</itunes:subtitle>
            <itunes:summary>Why should anyone be led by you?</itunes:summary>
            <itunes:duration>713</itunes:duration>
            <itunes:keywords>motivation,business,leadership</itunes:keywords>
            <itunes:explicit>clean</itunes:explicit>
            <itunes:image href="https://d3wo5wojvuv7l.cloudfront.net/t_rss_itunes_square_1400/images.spreaker.com/original/f71be8f6c859a4ce5669a83cbf3bcd31.jpg"/>
        </item>

您可以看到有一个附件 URL 指向一个 mp3。这就是我要提取的 URL。

任何建议将不胜感激。

【问题讨论】:

  • 我不认为dataType: 'json' 是正确的; rss 看起来更像 XML。

标签: javascript rss


【解决方案1】:

这就是我最终获得附件网址的方式:

$(document).ready(function() {
  var feed = "https://crossorigin.me/https://www.spreaker.com/show/1720272/episodes/feed";

  $.ajax(feed, {
    accepts: {
      xml: "application/rss+xml"
    },
    dataType: "xml",
    success: function(data) {
      $(data).find("enclosure").each(function() { 
        var el = $.parseHTML($(this)[0].outerHTML);
        var url = $(el).attr('url');
        console.log(url);
      });
    }
  });
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-04
    • 2016-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多