Google AJAX API - 如何获得超过4个结果?

Jas*_*son 23 json image google-api

我使用下面的谷歌API ajax来获取特定搜索词的图像.这是在WinForms应用程序中完成的.

以下链接似乎有效,但它只返回4个结果(通过JSON)

有谁知道如何更多地哄骗它?

http://ajax.googleapis.com/ajax/services/search/images?v=1.0&q=Apple+Cake

显然必须有另一个参数来请求更多或分页结果,但我似乎无法弄明白?谁知道?

rfo*_*rte 32

我认为唯一的方法是对webservice进行多次调用,指定'start'参数.

http://ajax.googleapis.com/ajax/services/search/images?v=1.0&q=Apple+Cake&start=4
Run Code Online (Sandbox Code Playgroud)

start参数是搜索结果中从0开始的索引.所以在这个例子中,它将返回图像4..7.

您还可以添加参数rsz=[1-8].默认值为4.这就是为什么每个请求获得4个结果的原因.这是一个链接:http:
//code.google.com/apis/imagesearch/v1/jsondevguide.html#basic_query

  • 这似乎在2014年已被弃用(请参阅https://developers.google.com/web-search/docs/).现在的解决方案是什么? (2认同)
  • 什么是替代API,因为它被弃用了? (2认同)

小智 5

对于那些想知道如何做到这一点的人,有很多方法.一种是基于某个事件运行循环查询.所以,比如...

var biebresults = [], start = 0;
function getBieb(startNumber){
    $.getJSON("https://ajax.googleapis.com/ajax/services/search/images?v=1.0&q=Justin%20Bieber&start="+startNumber+"&callback=?", function(results){
        biebresults.push(results.responseData.results);
        if(biebresults.length < 538){
            start = start + 4;
            getBieb(start);
        } else {
            // Do something with your billion bieb images.
        }
    });
}
getBieb(start);
Run Code Online (Sandbox Code Playgroud)

这个特殊的代码(使用jQuery,顺便说一句)将会抓住你最喜欢的流行歌星的前四个图像.从这里计算结果的数量,如果它不够,它将再次运行getBieb,除了这次startNumber参数增加.