【问题标题】:retrieving Google search results检索 Google 搜索结果
【发布时间】:2011-03-27 01:51:25
【问题描述】:

我看了你的帖子

simple php script to retrieve google keyword search completion

我想知道您将如何“回显”下一页? 这是我的脚本..

$search = '查询';

$x = json_decode(file_get_contents( 'http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=' . urlencode($search)));

回声 $x->responseData->results[0]->url;

我能够“回显”该网址,但我被困在进入下一页并“回显”下一个网址

谢谢楼主

【问题讨论】:

    标签: php search


    【解决方案1】:

    你改变索引:

    echo $x->responseData->results[1]->url;
    

    循环遍历所有:

    foreach ($x->responseData->results as $r) {
        echo $r->url, "\n";
    }
    

    您可以使用var_dump($x); 查看完整结果。

    要检索另一页结果,可以使用start参数,例如:

    $x = json_decode(
        file_get_contents(
        'http://ajax.googleapis.com/ajax/services/search/web?v=1.0&start=4&q='
        . urlencode( $search )));
    

    您可以使用rsz=large 请求 8 个结果而不是 4 个。

    【讨论】:

    • 它正在脚本中显示结果。它只会显示大约 4 个结果.. 我想知道的是如何在下一页上显示结果
    • ohai 谢谢 :) 我实际上已经这样做了。读完'start=4'后我受到启发,我所做的是'start=1',其中currentpageindex仍然是0哈哈xD
    • 我可以再问一个问题吗?有没有办法知道最大页数?我试图计数($x->pages),它只返回 8
    • @kapi 有$x->responseData->cursor->estimatedResultCount。不过是估计的。如果您想检索所有结果,则必须提前start,直到您没有收到任何回复。
    【解决方案2】:

    对于希望与 Google 交互并偶然发现此解决方案的任何其他人,上面的代码现在返回此响应:object(stdClass)#1 (3) { ["responseData"]=> NULL ["responseDetails"]=> string(143) "The Google Web Search API is no longer available. Please migrate to the Google Custom Search API (https://developers.google.com/custom-search/)" ["responseStatus"]=> int(403) }

    请迁移到 Google 自定义搜索 API (https://developers.google.com/custom-search/)我希望这可以节省一些时间!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-23
      • 1970-01-01
      相关资源
      最近更新 更多