我正在尝试从http://www.ikea.com/us/en/catalog/products/10176292获取一些文字 使用jsonp。
要测试它是否有效,这就是我所做的
$.getJSON("http://www.ikea.com/us/en/catalog/products/10176292?format=json&jsoncallback=?",function(data) {
$('h1').text(data.modified);
});
这不起作用所以它可能无效,但我在谷歌上找到的所有jsonp文档都使用twitter或flickr API作为示例。我很确定宜家没有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,它似乎与jsonp从ikea中提取文本数据一起工作。我不需要任何复杂的东西,只是为了能够检索一些简单的文本。
有人可以指出我正确的方向或给出一些提示。
由于
答案 0 :(得分:0)
您可以使用ajax补充getJSON(请参阅此处的官方文档 - 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。然后以上所有函数都会相应地进行提取和解析。
答案 1 :(得分:0)
Ikea的链接不是JSON所以你不能从中获取。看起来Ikea没有公共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等等。
答案 2 :(得分: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 " - IKEA" width="500" height="500" class="mn_global_shadow ui-draggable" style="width: 244px; display: inline-block; height: 244px; left: 0px; top: 0px;">
在标题中我们得到名称,完成,颜色和大小 价格和数量保存在id / class中,这似乎是整个站点的标准。
除了我没有看过之外它是如何工作的,但它似乎并不太复杂。 希望这会有所帮助。
答案 3 :(得分:0)
您可能需要提供一些自定义标头。 Wireshark是你的朋友