【问题标题】:different number of results using google search api使用谷歌搜索 api 的不同数量的结果
【发布时间】:2015-08-27 14:32:47
【问题描述】:

我使用谷歌搜索 API 来提取第 80 个结果。我的问题是每次我运行程序时,它都会给我不同数量的结果(URL)。

注意:第 42 行尝试获取非对象的属性

    <?php

    $query='site:https://fr.wikipedia.org%20sport';
    $url = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&hl=fr&rsz=large&q=".$query;

    $body = file_get_contents($url);
    $json = json_decode($body);

    $inF = fopen("fnm.txt","a"); 
    for($x=0;$x<count($json->responseData->results);$x++){

    echo "<b>Result ".($x+1)."</b>";
    echo "<br>URL: ";
    echo $json->responseData->results[$x]->url;
    fputs($inF,$json->responseData->results[$x]->url); fwrite($inF, "\r\n");
    echo "<br>VisibleURL: ";
    echo $json->responseData->results[$x]->visibleUrl;
    echo "<br>Title: ";
    echo $json->responseData->results[$x]->title;
    echo "<br>Content: ";
    echo $json->responseData->results[$x]->content;
    echo "<br><br>";
    }

    $j=0;
    for ($i= 0; $i <= 10; $i++) 
    {
     $j=$j+8;
     echo $j;
     $query = 'site:https://fr.wikipedia.org%20sport';
      $url = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&hl=fr&rsz=large&start=$j&q=".$query;

     $body = file_get_contents($url);
     $json = json_decode($body);

    for($x=0;$x<count($json->responseData->results);$x++){

    echo "<b>Result ".($x+1)."</b>";
    echo "<br>URL: ";
    echo $json->responseData->results[$x]->url;
    fputs($inF,$json->responseData->results[$x]->url); fwrite($inF, "\r\n");
    echo "<br>VisibleURL: ";
    echo $json->responseData->results[$x]->visibleUrl;
    echo "<br>Title: ";
    echo $json->responseData->results[$x]->title;
    echo "<br>Content: ";
    echo $json->responseData->results[$x]->content;
    echo "<br><br>";
    }

}

fclose ($inF);

【问题讨论】:

    标签: php api


    【解决方案1】:

    看看这个答案 - https://stackoverflow.com/a/4353393/5214904。 简而言之:在 64 个结果中没有 API 密钥是有限制的

    已编辑: 见https://developers.google.com/web-search/docs/#php-access 您需要在 url 中发送您的/客户端 IP,在 REFERER 字段中发送您的站点。你可以用 CURL 做到这一点。

    【讨论】:

    • 我的问题是,每当我运行程序时,我都会获得不同数量的结果(8、16、...)。 .
    猜你喜欢
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 2014-08-25
    • 1970-01-01
    • 2012-04-10
    • 1970-01-01
    • 2019-04-10
    相关资源
    最近更新 更多