Craigslist RSS-канал - PullRequest
       22

Craigslist RSS-канал

2 голосов
/ 30 марта 2009

Я пытаюсь проанализировать данные из RSS-канала Craigslist.

Это адрес канала - http://www.craigslist.org/about/best/all/index.rss

Я использую jfeed, и мой код указан ниже

jQuery(function() {

    jQuery.getFeed({
        url: 'proxy.php?url=http://www.craigslist.org/about/best/all/index.rss',
        success: function(feed) {        
            jQuery('#result').append('<h2>'
            + feed.title
            + '</h2>');                                

        }    
    });
});

Однако у меня не отображается название канала или любое другое свойство канала. Если я просто пытаюсь распечатать канал на экран, я получаю «Объект объекта», что означает, что он правильно вернул канал.

Кто-нибудь знает, что мне не хватает?

Ответы [ 2 ]

3 голосов
/ 15 августа 2011

Во-первых: вы не можете получить данные из другого домена, так как политика crossdomain . Я не знаю о jfeed, но в своих проектах я придумал это решение. С помощью этой простой функции вы можете сэкономить некоторую полосу пропускания и накладные расходы кода.

Рабочий пример

http://intervisual.de/stackoverflow/fetchxml/index.html

proxy.php (источник: http://jquery -howto.blogspot.com / 2009/04 / cross-domain-ajax-querying-with-jquery.html )

<?php
// Set your return content type
header('Content-type: application/xml');

// Website url to open
$daurl = 'http://www.craigslist.org/about/best/all/index.rss';

// Get that website's content
$handle = fopen($daurl, "r");

// If there is something, read and return
if ($handle) {
    while (!feof($handle)) {
        $buffer = fgets($handle, 4096);
        echo $buffer;
    }
    fclose($handle);
}
?>

JQuery

$.ajax({
    type: "GET",
    url: "proxy.php",
    dataType: "xml",
    success: parseXml
 });

function parseXml(xml) {
    console.log(xml);
    $(xml).find("item").each(function() {
        var content = $(this).find("title").text()
        $("#news_list").append('<li>' + content +'</li>');
    });
}

HTML

<div id="news_list"></div>
1 голос
/ 27 января 2012

В качестве альтернативы вы можете использовать какой-либо другой сервис для чтения RSS-канала и преобразования его в JSON, что чрезвычайно полезно, если у вас нет доступа к какой-либо серверной среде.

Для этого я обычно использую YQL, но, безусловно, есть и другие сервисы.

Вот рабочий пример использования craigslist с источником: http://jsfiddle.net/soparrissays/NFSaq/2/

...