2009-03-29 9 views
2

Ich versuche, die Daten von einem craigslist RSS Feed zu analysieren.craigslist rss feed

Dies ist die Feed-URL - http://www.craigslist.org/about/best/all/index.rss

ich jfeed und meinem Code bin mit unterhalb

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>');         

     }  
    }); 
}); 

jedoch gegeben, ich angezeigt oder jede andere Eigenschaft der nicht das Futter Titel erhalten Futter. Wenn ich nur versuche, den Feed auf dem Bildschirm auszudrucken, bekomme ich "Object Object", was bedeutet, dass der Feed korrekt zurückgegeben wurde.

Weiß jemand was ich vermisse?

+0

Was passiert, wenn Sie „console.log“, um das Objekt zu Firebug anmelden? – bhollis

+0

ich überprüft und es zeigt die Beschreibung, Titel, Link als leer. Wenn ich die Craigslist-URL direkt mit einem Webbrowser öffne und die Seitenquelle anschaue, kann ich Werte für den Titel, Link, Beschreibung usw. sehen. –

+0

jfeeds Beispiel-Proxy.html arbeitet hier mit http: //www.craigslist. org/über/best/all/index.rss. dauert eine Weile zu laden, aber dann ist es da, mit Titel und allen anderen Eigenschaften. –

Antwort

3

Erstens: Sie können Daten aus einer anderen Domäne nicht abrufen, da die crossdomain Richtlinie. Ich weiß nicht über Jfeed, aber in meinen Projekten habe ich diese Lösung gefunden. Mit dieser einfachen Funktion können Sie etwas Bandbreite und Code-Overhead sparen.

Arbeitsbeispiel

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

proxy.php (src: 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

Alternativ können Sie einen anderen Dienst verwenden, um die RSS-Feeds und wandeln es in JSON zu lesen, die sehr nützlich ist, wenn Sie keinen Zugriff auf alle Server-Seite Umwelt haben.

Um dies zu tun, verwende ich normalerweise YQL, aber es gibt definitiv andere Dienste da draußen.

Hier ist ein funktionierendes Beispiel mit Craigslist mit der Quelle: http://jsfiddle.net/soparrissays/NFSaq/2/