2009-03-29 8 views
2

私はcraigslist rssフィードからデータを解析しようとしています。craigslist rss feed

これは、フィードURLである - 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>');         

     }  
    }); 
}); 

以下に示します。フィード。私が画面にフィードを印刷しようとすると、オブジェクトオブジェクトが得られます。これは、フィードが正しく返されたことを意味します。

私が迷っていることは誰でも知っていますか?

+0

あなたはFirebugのにオブジェクトをログに記録する「はconsole.log」を使用した場合どうなりますか? – bhollis

+0

私はそれを確認し、説明、タイトル、リンクが空であることを示します。 Webブラウザを使用してcraigslist URLを直接開いてページソースを表示すると、タイトル、リンク、説明などの値が表示されます。 –

+0

jfeedのexample-proxy.htmlはhttp://www.craigslistで動作しています。 org/about/best/all/index.rss。ロードするのに時間がかかりますが、そこにタイトルと他のすべてのプロパティがあります。 –

答えて

3

最初:crossdomainポリシーのため、別のドメインからデータを取得できません。私はjfeedについてはわかりませんが、私のプロジェクトではこの解決策を考え出しました。この単純な関数を使用すると、帯域幅とコードのオーバーヘッドを節約できます。

実施例

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

代わりにあなたはRSSフィードを読んで、あなたが任意のサーバー側の環境へのアクセスを持っていない場合は非常に有用であるJSON、それを変換するために、いくつかの他のサービスを使用することができます。

これを行うには、通常はYQLを使用しますが、確かに他のサービスがあります。ここで

は、ソースとのクレイグズリストを使用した実施例である:http://jsfiddle.net/soparrissays/NFSaq/2/