【问题标题】:Read Google Search results into PHP array? [closed]将 Google 搜索结果读入 PHP 数组? [关闭]
【发布时间】:2012-02-10 21:55:27
【问题描述】:

简而言之,我正在寻找一种方法来做到这一点:

$results_array = google("search terms"); // returns array of URLs

因此,例如,如果我的搜索词是“猫视频”,我的 $results_array[0] 可能是 Youtube URL,$results_array1 可能在 Vimeo 上。

我见过 Google 自定义搜索 API,但它们都需要复杂的 JSON 转换、ATOM、REST 或其他一些系统,这对于我想要做的事情来说过于复杂。

有没有简单的解决方案?

编辑:我找到了,感谢另一个帖子

感谢this post 我能够弄明白。简而言之,我只是使用了以下内容:

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

echo $results->responseData->results[$resultNumber]->url;

我对投反对票感到有些惊讶和失望——这似乎是一个很常见的问题,实际上,答案很简单。这确实涉及 JSON,但它对用户完全透明。也许对我所问的更准确的解决方案是:

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

    return $results->responseData->results
}

【问题讨论】:

  • JSON 是如何过于复杂的?似乎是您实施的首选。绝对比解析 HTML 搜索结果简单...
  • google 不喜欢任何试图绕过他们的 api 的东西,所以如果你试图提出直接请求并解析结果 - 你的主机可能会被禁止。

标签: php api url search


【解决方案1】:

如果你想获得视频结果,那么你可以试试这个。

//replace space between words with +
$query = "cat+video"; 
$start = 0;
/*
this url will give you json response with 4 results each time.
u have to change the $start like 0, 4, 8,...
use json_decode() and get it in array
*/

$url = 'https://ajax.googleapis.com/ajax/services/search/video?v=1.0&q='.$query.'&start='.$start

希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 2011-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-15
    • 1970-01-01
    • 2012-12-20
    • 1970-01-01
    相关资源
    最近更新 更多