-1

jsonp を使用してhttp://www.ikea.com/us/en/catalog/products/10176292からテキストを取得しようとしています。

それが機能するかどうかをテストするために、これが私がしたことです

$.getJSON("http://www.ikea.com/us/en/catalog/products/10176292?format=json&jsoncallback=?",function(data) {
$('h1').text(data.modified);
}); 

これは機能しないため、おそらく有効ではありませんが、Google で見つけたすべての jsonp ドキュメントは、例として twitter または flickr API を使用しています。IKEA には API がないことは確かなので、これらのメソッドはあまり役に立ちません。

ただし、これは機能し、flickr からテキストを返します

$.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?id=25053835@N03&format=json&jsoncallback=?",function(data) {
$('h1').text(data.title);
});

この例を見たので、これを試みています http://www.foxycart.com/whos-using-foxy/case-studies/modernash、ikeaからテキストデータをフェッチするjsonpで動作するようです。単純なテキストを取得できるようにするためだけに、それほど複雑なものは必要ありません。

誰かが私を適切な方向に向けるか、ヒントを教えてください。

ありがとう

4

4 に答える 4

0

サイトからデータをスクレイピングしているように見えます。すべての製品情報は html に保存され、それをオブジェクトに自分のカートに追加しています。

画像をブックマークレットにドラッグしたので、画像 @ http://www.ikea.com/us/en/catalog/products/20011408/#/80193735に保存されているデータを確認しました。

<img id="productImg" src="/us/en/images/products/lack-side-table__0115088_PE268302_S4.JPG" border="0" alt="LACK Side table IKEA The high-gloss surfaces reflect light and give a vibrant look. Easy to assemble. Low weight; easy to move." title="LACK Side table - high gloss red, 21 5/8x21 5/8 &quot; - IKEA" width="500" height="500" class="mn_global_shadow ui-draggable" style="width: 244px; display: inline-block; height: 244px; left: 0px; top: 0px;">

タイトルでは、名前、仕上げ、色、およびサイズを取得します。
価格と数量は、サイト全体で標準と思われる ID/クラスに保持されます。

それを超えてどのように機能するかは見ていませんが、それほど複雑ではないようです。お役に立てれば。

于 2013-01-22T20:07:38.777 に答える
0

getJSON を ajax で補うことができます (こちらの公式ドキュメントを参照してください - http://api.jquery.com/jQuery.getJSON/ )。その後、JSONP を宣言するのは非常に簡単です。

    $.ajax({
      dataType: "jsonp",
      url: 'http://api.flickr.com/services/feeds/photos_public.gne?id=25053835@N03&format=json&jsoncallback=?',
      data: data,
      success: function( data ) {
            $('h1').text(data.modified);
       });

編集:@Matt Ballは正しいです。上記の ajax 呼び出しのようなものを使用する前に、使用している URL が実際の json を返すことを確認する必要があります。目的の URL に移動して、未加工の JSON を表示できるはずです。次に、上記の関数が行うことは、それに応じてフェッチして解析することだけです。

于 2013-01-10T14:00:42.253 に答える
0

Ikea へのリンクは JSON ではないため、そこからプルすることはできません。イケアにはパブリック API がないようです。そのため、それらからデータを取得して使用することはできません。

Flickr の場合、正しい軌道に乗っています。これを行う方法は次のとおりです。

$.ajax({
    dataType: 'jsonp',
    url: 'http://api.flickr.com/services/feeds/photos_public.gne?id=25053835@N03&format=json&jsoncallback=?',
    success: function(data){
        console.log(data);
    } 
});

タイトルを取得したい場合は、data.title などを実行します。

于 2013-01-10T14:05:34.193 に答える