【问题标题】:How do I repeat a query?如何重复查询?
【发布时间】:2016-12-18 18:08:47
【问题描述】:

我需要重复以下查询以增加谷歌图片的结果。代码在点击按钮后执行。

谷歌文档说:

Google 自定义搜索和 Google Site Search 最多返回 10 个结果 每个查询。如果要向用户显示超过 10 个结果, 您可以发出多个请求(使用 start=0, start=11 ... 参数)并在单个页面上显示结果。在这种情况下, Google 会将每个请求视为一个单独的查询,如果您是 使用 Google Site Search,每个查询都将计入您的限制。

Other SO question says

要获得更多结果,您应该进行多次调用。在每个不同的 调用,将参数'start'的值增加10。

还有this one says:

现在您一次不能向 google 询问超过 10 个结果。那么你 必须再次查询要求从 11 开始的 10 个结果。所以在下一个 查询,保持 num=10 和 start=11。现在您可以通过以下方式获得所有结果 改变起始值。

如何重复以下操作,每次都增加start参数?

    function googleImages() {
        var myCx = "MY_CX";
        var myKey = "MY_KEY";
        $.getJSON("https://www.googleapis.com/customsearch/v1", {
            q: termS + " in 1930 in " + country,
            alt: "json",
            searchType: "image",
            cx: myCx,
            num: 10,
            start: 0,
            key: myKey,
            rights: "cc_publicdomain",
            filter: "1",
            safe: "high",
            imgType: "photo",
            fileType: "jpg"
        },
        function (data) {
            $.each(data.items, function(i,item) {    
                $(".my_images .row .grid").append('<div class="col-sm-4 grid-item"><div class="thumbnail"><img class="img-responsive" src="' + item.link + '"></div></div>');
            });
            var $grid = $('.grid').packery({
            // options
            itemSelector: '.grid-item',
            percentPosition: true
        });
        $grid.imagesLoaded().progress( function() {
            $grid.packery('layout');
        });
        });
    }

【问题讨论】:

    标签: javascript jquery google-api google-custom-search


    【解决方案1】:

    您应该在调用之间保存start 值,例如您可以使用这样的模式:

       function createGoogleImagesLoader(initialValue) {
           var _start = initialValue || 0;
           var imagesCount = 10;
    
           return function() {
                $.getJSON("https://www.googleapis.com/customsearch/v1", {
                    ...
                    num: imagesCount,
                    start: _start
                 },..);
                _start += imagesCount;
    
           }
        }
    
    var googleImages = createGoogleImagesLoader();
    googleImages() // load from 0 to 10
    googleImages() // load from 10 to 20 etc.
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-28
      • 2011-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-23
      • 2011-05-12
      • 1970-01-01
      相关资源
      最近更新 更多