将Google搜索结果读入PHP数组?

时间:2012-02-08 17:58:31

标签: php api url search

简而言之,我正在寻找一种方法:

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

因此,举例来说,如果我的搜索字词是“猫视频”,我的$ results_array [0]可能是Youtube网址,而$ results_array 1可能在Vimeo上。

我见过谷歌自定义搜索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
}

1 个答案:

答案 0 :(得分:3)

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

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

希望它会有所帮助。