将谷歌搜索结果读取到PHP数组中


Read Google Search results into PHP array?

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

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

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

我看过Google自定义搜索API,但它们都需要复杂的JSON转换、ATOM、REST或其他系统,这对于我正在尝试的操作来说过于复杂

有什么简单的解决方案吗?

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

多亏了这篇文章,我才弄明白。简而言之,我简单地使用了以下内容:

$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
}

如果你想获得视频结果,那么你可以尝试一下。

//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

希望对你有所帮助。