Анализируйте RSS с помощью jQuery

Я хочу использовать jQuery для анализа RSS-каналов. Можно 9X_rss ли это сделать с помощью базовой библиотеки 9X_addclass jQuery из коробки или мне нужно будет использовать 9X_rssfeed плагин?

195
1

  • Я бы выбрал https://github.com/sdepold/jqu ...
14
Общее количество ответов: 14

Ответ #1

Ответ на вопрос: Анализируйте RSS с помощью jQuery

ВНИМАНИЕ

The Google Feed API официально устарел и больше не работает!


Нет необходимости в плагине 9X_jquery целиком. Это вернет ваш RSS как объект JSON 9X_jquery-plugin в функцию обратного вызова:

function parseRSS(url, callback) {
  $.ajax({
    url: document.location.protocol + '//ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=10&callback=?&q=' + encodeURIComponent(url),
    dataType: 'json',
    success: function(data) {
      callback(data.responseData.feed);
    }
  });
}

208
6

  • Это не лучший ответ. Это зависит от сторонней компании [Google], обслуживающей их услуги. Он не отвечает на исходный вопр ...

Ответ #2

Ответ на вопрос: Анализируйте RSS с помощью jQuery

Use jFeed - плагин jQuery RSS / Atom. Согласно документации, это 9X_jquery очень просто:

jQuery.getFeed({
   url: 'rss.xml',
   success: function(feed) {
      alert(feed.title);
   }
});

185
5

  • Похоже, что jFeed больше не поддерживается активно (последнее изменение было сделано 2 года назад, и многие от ...

Ответ #3

Ответ на вопрос: Анализируйте RSS с помощью jQuery

Для тех из нас, кто пришел к обсуждению 9X_jquery-plugins поздно, начиная с версии 1.5 jQuery имеет 9X_toggleclass встроенные возможности синтаксического анализа 9X_jquery-plugins XML, что позволяет довольно легко сделать 9X_jquery-post это без плагинов или сторонних сервисов. Он 9X_jquery-plugin имеет функцию parseXml, а также автоматически 9X_jquery-get анализирует xml при использовании функции 9X_jquery $ .get. Например:

$.get(rssurl, function(data) {
    var $xml = $(data);
    $xml.find("item").each(function() {
        var $this = $(this),
            item = {
                title: $this.find("title").text(),
                link: $this.find("link").text(),
                description: $this.find("description").text(),
                pubDate: $this.find("pubDate").text(),
                author: $this.find("author").text()
        }
        //Do something with item here...
    });
});

161
2

  • Ошибка XmlHttpRequest: источник не разреш ...

Ответ #4

Ответ на вопрос: Анализируйте RSS с помощью jQuery

jFeed не работает в IE.

Используйте zRSSFeed. Сработало 9X_jquery-post через 5 минут

16
3

  • Кстати, zRssFeed использует внутренне [Google Feed RSS API] (http://code.google.com/apis/feed/v1/jsondevguide.html). Так что, если кто-то хочет создать сам HTML-макет, п ...

Ответ #5

Ответ на вопрос: Анализируйте RSS с помощью jQuery

Обновление (15 октября 2019 г.)

Я извлек основную логику из jquery-rss в 9X_toggleclass новую библиотеку под названием Vanilla RSS, которая 9X_jquery использует API выборки и может работать 9X_removeclass без каких-либо дополнительных зависимостей:

const RSS = require('vanilla-rss');
const rss = new RSS(
    document.querySelector("#your-div"),
    "http://www.recruiter.com/feed/career.xml",
    { 
      // options go here
    }
);
rss.render().then(() => {
  console.log('Everything is loaded and rendered');
});

Оригинал

сообщение:

Вы 9X_jquery-plugins также можете использовать jquery-rss, который поставляется 9X_removeclass с красивыми шаблонами и очень прост в использовании:

$("#your-div").rss("http://www.recruiter.com/feed/career.xml", {
    limit: 3,
    layoutTemplate: '
    {entries}
', entryTemplate: '
  • [{author}@{date}] {title}
    {shortBodyPlain}
  • ' })

    урожайность 9X_jquery-callback (по состоянию на 18 сентября 2013 г.):

    См. рабочий 9X_removeclass пример на http://jsfiddle.net/sdepold/ozq2dn9e/1/.

    16
    0

    Ответ #6

    Ответ на вопрос: Анализируйте RSS с помощью jQuery

    Using JFeed

    function getFeed(sender, uri) {
        jQuery.getFeed({
            url: 'proxy.php?url=' + uri,
            success: function(feed) {
                jQuery(sender).append('

    ' + '' + feed.title + '' + '

    '); var html = ''; for(var i = 0; i < feed.items.length && i < 5; i++) { var item = feed.items[i]; html += '

    ' + '' + item.title + '' + '

    '; html += '
    ' + item.updated + '
    '; html += '
    ' + item.description + '
    '; } jQuery(sender).append(html); } }); }

    9X_jquery

    15
    0

    Ответ #7

    Ответ на вопрос: Анализируйте RSS с помощью jQuery

    Используйте Google AJAX Feed API, если ваши 9X_jquery данные RSS не являются конфиденциальными. Конечно, быстро.

    https://developers.google.com/feed/

    9
    1

    • Хорошая идея, но не работает, когда вы находитесь внутри брандмауэра, который требует про ...

    Ответ #8

    Ответ на вопрос: Анализируйте RSS с помощью jQuery

    ОБНОВЛЕНИЕ [25.04.2016] Теперь лучше написанная и полностью 9X_jquery-post поддерживаемая версия с дополнительными 9X_jquery-post опциями и возможностями, размещенными на 9X_feedparser GitHub.jQRSS

    Я видел Selected Answer от Nathan Strutz, однако ссылка на страницу 9X_addclass подключаемого модуля jQuery все еще не работает, и 9X_jquery-get домашняя страница этого сайта не загружается. Я 9X_jquery-plugin попробовал несколько других решений и обнаружил, что 9X_jquery-callback большинство из них не только устарело, но 9X_jquery-filter и ЛЕГКО! Таким образом, я бросил свою шляпу и 9X_jquery сделал свой собственный плагин, и с мертвыми 9X_jquery-plugin ссылками здесь, это похоже на отличное место 9X_toggleclass для отправки ответа. Если вы ищете этот 9X_jquery-callback ответ в 2012 году (скоро до 2013 года), вы 9X_removeclass можете заметить разочарование мертвыми ссылками 9X_toggleclass и старыми советами здесь, как это сделал 9X_removeclass я. Ниже приведена ссылка на мой современный пример 9X_jquery плагина, а также код этого плагина! Просто 9X_jquery-plugins скопируйте код в файл JS и свяжите его в 9X_toggleclass заголовке, как любой другой плагин. Использование 9X_jquery ЧРЕЗВЫЧАЙНО EZ!

    jsFiddle

    Код плагина
    09.02.2015 - сделано давно назревшее обновление для проверки console перед отправкой на него команд! Должно помочь с более старыми проблемами IE.

    (function($) {
        if (!$.jQRSS) { 
            $.extend({  
                jQRSS: function(rss, options, func) {
                    if (arguments.length <= 0) return false;
    
                    var str, obj, fun;
                    for (i=0;i 0) {
                            o = $.extend(true, o, obj);
                        }
                    }
    
                    if (str != "" && !o.rss) o.rss = str;
                    o.rss = escape(o.rss);
    
                    var gURL = $.jQRSS.props.gURL 
                        + $.jQRSS.props.type 
                        + "?v=" + $.jQRSS.props.ver
                        + "&q=" + o.rss
                        + "&callback=" + $.jQRSS.props.callback;
    
                    var ajaxData = {
                            num: o.count,
                            output: o.output,
                        };
    
                    if (o.historical) ajaxData.scoring = $.jQRSS.props.scoring;
                    if (o.userip != null) ajaxData.scoring = o.userip;
    
                    $.ajax({
                        url: gURL,
                        beforeSend: function (jqXHR, settings) { if (window['console']) { console.log(new Array(30).join('-'), "REQUESTING RSS XML", new Array(30).join('-')); console.log({ ajaxData: ajaxData, ajaxRequest: settings.url, jqXHR: jqXHR, settings: settings, options: o }); console.log(new Array(80).join('-')); } },
                        dataType: o.output != "xml" ? "json" : "xml",
                        data: ajaxData,
                        type: "GET",
                        xhrFields: { withCredentials: true },
                        error: function (jqXHR, textStatus, errorThrown) { return new Array("ERROR", { jqXHR: jqXHR, textStatus: textStatus, errorThrown: errorThrown } ); },
                        success: function (data, textStatus, jqXHR) {  
                            var f = data['responseData'] ? data.responseData['feed'] ? data.responseData.feed : null : null,
                                e = data['responseData'] ? data.responseData['feed'] ? data.responseData.feed['entries'] ? data.responseData.feed.entries : null : null : null
                            if (window['console']) {
                                console.log(new Array(30).join('-'), "SUCCESS", new Array(30).join('-'));
                                console.log({ data: data, textStatus: textStatus, jqXHR: jqXHR, feed: f, entries: e });
                                console.log(new Array(70).join('-'));
                            }
    
                            if (fun) {
                                return fun.call(this, data['responseData'] ? data.responseData['feed'] ? data.responseData.feed : data.responseData : null);
                            }
                            else {
                                return { data: data, textStatus: textStatus, jqXHR: jqXHR, feed: f, entries: e };
                            }
                        }
                    });
                }
            });
            $.jQRSS.props = {
                callback: "?",
                gURL: "http://ajax.googleapis.com/ajax/services/feed/",
                scoring: "h",
                type: "load",
                ver: "1.0"
            };
            $.jQRSS.methods = {
                getObjLength: function(obj) {
                    if (typeof obj != "object") return -1;
                    var objLength = 0;
                    $.each(obj, function(k, v) { objLength++; })
                    return objLength;
                }
            };
            $.jQRSS.defaults = {
                count: "10", // max 100, -1 defaults 100
                historical: false,
                output: "json", // json, json_xml, xml
                rss: null,  //  url OR search term like "Official Google Blog"
                userip: null
            };
        }
    })(jQuery);
    

    ИСПОЛЬЗОВАНИЕ

    //  Param ORDER does not matter, however, you must have a link and a callback function
    //  link can be passed as "rss" in options
    //  $.jQRSS(linkORsearchString, callbackFunction, { options })
    
    $.jQRSS('someUrl.xml', function(feed) { /* do work */ })
    
    $.jQRSS(function(feed) { /* do work */ }, 'someUrl.xml', { count: 20 })
    
    $.jQRSS('someUrl.xml', function(feed) { /* do work */ }, { count: 20 })
    
    $.jQRSS({ count: 20, rss: 'someLink.xml' }, function(feed) { /* do work */ })
    

    $ .jQRSS ('Искать слова здесь вместо ссылки', функция (фид) {/ * работает * /}) // TODO: требует исправления

    Параметры

    {
        count: // default is 10; max is 100. Setting to -1 defaults to 100
        historical: // default is false; a value of true instructs the system to return any additional historical entries that it might have in its cache. 
        output: // default is "json"; "json_xml" retuns json object with xmlString / "xml" returns the XML as String
        rss: // simply an alternate place to put news feed link or search terms
        userip: // as this uses Google API, I'll simply insert there comment on this:
            /*  Reference: https://developers.google.com/feed/v1/jsondevguide
                This argument supplies the IP address of the end-user on 
                whose behalf the request is being made. Google is less 
                likely to mistake requests for abuse when they include 
                userip. In choosing to utilize this parameter, please be 
                sure that you're in compliance with any local laws, 
                including any laws relating to disclosure of personal 
                information being sent.
            */
    }
    
    8
    0

    Ответ #9

    Ответ на вопрос: Анализируйте RSS с помощью jQuery

    I agree with @Andrew, использование Google - надежный, многоразовый 9X_rssfeed способ сделать это с огромным преимуществом, заключающимся 9X_addclass в том, что вы получаете обратно JSON вместо 9X_jquery-get XML. Дополнительным преимуществом использования 9X_addclass Google в качестве прокси-сервера является 9X_jquery-after то, что службы, которые могут заблокировать 9X_jquery-filter ваш прямой доступ к своим данным, вряд ли 9X_toggleclass остановят Google. Вот пример использования 9X_jquery-filter отчета о лыжах и данных условий. У него 9X_jquery есть все обычные приложения реального мира: 1) Сторонний 9X_rssfeed RSS / XML 2) JSONP 3) Очистка строк и строк 9X_addclass в массив, когда вы не можете получить данные 9X_jquery-filter именно так, как вы хотите 4) при загрузке 9X_jquery-plugins добавляйте элементы в ДОМ. Надеюсь, это 9X_rssfeed поможет некоторым людям!

    
    
    

    5
    2

    • Меня устраивает. Вы это тестировали? Почти уверен, что Go ...

    Ответ #10

    Ответ на вопрос: Анализируйте RSS с помощью jQuery

    (function(url, callback) {
        jQuery.ajax({
            url: document.location.protocol + '//ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=10&callback=?&q=' + encodeURIComponent(url),
            dataType: 'json',
            success: function(data) {
                callback(data.responseData.feed);
            }
        });
    })('http://news.hitb.org/rss.xml', function(feed){ // Change to desired URL
        var entries = feed.entries, feedList = '';
        for (var i = 0; i < entries.length; i++) {
            feedList +='
  • ' + entries[i].title + '
  • '; } jQuery('.feed > ul').append(feedList); });

    Hacker News

      9X_removeclass

      5
      0

      Ответ #11

      Ответ на вопрос: Анализируйте RSS с помощью jQuery

      jFeed несколько устарел, работает только 9X_rssfeed со старыми версиями jQuery. Прошло два года 9X_jquery-callback с момента его обновления.

      zRSSFeed, возможно, немного 9X_rss менее гибкий, но он прост в использовании 9X_rssfeed и работает с текущей версией jQuery (в настоящее 9X_jquery-callback время 1.4). http://www.zazar.net/developers/zrssfeed/

      Вот быстрый пример из документации 9X_jquery-plugins zRSSFeed:

      4
      0

      Ответ #12

      Ответ на вопрос: Анализируйте RSS с помощью jQuery

      Я использую jquery с yql для подачи. Вы 9X_jquery-post можете получить twitter, rss, buzz с помощью 9X_jquery-filter yql. Я прочитал из http://tutorialzine.com/2010/02/feed-widget-jquery-css-yql/. Для меня это очень 9X_jquery-callback полезно.

      2
      0

      Ответ #13

      Ответ на вопрос: Анализируйте RSS с помощью jQuery

      Советую использовать FeedEk. После того, как Google 9X_toggleclass Feed API официально устарел, большинство 9X_addclass плагинов перестали работать. Но FeedEk все 9X_jquery-plugin еще работает. Он очень прост в использовании 9X_jquery-get и имеет множество параметров, которые можно 9X_removeclass настроить.

      $('#divRss').FeedEk({
         FeedUrl:'http://jquery-plugins.net/rss'
      });
      

      С опциями

      $('#divRss').FeedEk({
        FeedUrl:'http://jquery-plugins.net/rss',
        MaxCount : 5,
        ShowDesc : true,
        ShowPubDate:true,
        DescCharacterLimit:100,
        TitleLinkTarget:'_blank',
        DateFormat: 'MM/DD/YYYY',
        DateFormatLang:'en'
      });
      

      2
      0

      Ответ #14

      Ответ на вопрос: Анализируйте RSS с помощью jQuery

      
      
      
      

      9X_feedparser

      1
      0