如何使用api [重复]获取所有谷歌搜索结果

时间:2022-09-22 15:41:46

This question already has an answer here:

这个问题在这里已有答案:

I need to get google search results for query. But using something like this

我需要获取谷歌搜索结果进行查询。但是使用这样的东西

$query = 'Nikita Platonenko';
$url = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=".urlencode($query);
$body = file_get_contents($url);
$json = json_decode($body);
var_dump($json)

i get only 4 results, I've already read about google ajax search but couldn't understand it. Please advise how to get all resulsts, or just first 100 results?

我只得到了4个结果,我已经读过谷歌ajax搜索,但无法理解。请告知如何获得所有结果,或只是前100个结果?

2 个解决方案

#1


28  

<?php
$query = 'Nikita%20Platonenko';
$url = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&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;
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>";

}

?>

As the AJAX Api is now depreciated, you can use a third party service like SerpApi to get Google results. They have a GitHub repository, and it should be easy to integrate:

由于AJAX Api现已折旧,您可以使用SerpApi等第三方服务获取Google搜索结果。他们有一个GitHub存储库,它应该很容易集成:

$query = [
    "q" => "Coffee",
    "google_domain" => "google.com",
];

$serp = new GoogleSearchResults();
$json_results = $serp.json($query);

#2


5  

The answer:

Here is what I use successfully:

这是我成功使用的:

http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=[q]&key=[key]&cx=[account]&rsz=large&userip=[userip]&start=[start]

I don't think you have full control over how many results that can be obtained in the query. But you can control the results size (rsz=large), and where it starts.

我认为您无法完全控制查询中可以获得多少结果。但是你可以控制结果大小(rsz = large),以及它的起始位置。

Other notes:

In addition, it is always good to include the user's ip address there. Because, Google limits the number of queries based unique ip addresses (meaning, how many from an ip address). So if they are all coming from your server, you will be limited in how many queries you can send, but the limits go way down if you send the user's ip address. In addition, caching the results for a couple of days is an added bonus.

此外,在那里包含用户的IP地址总是好的。因为,谷歌限制了基于唯一IP地址的查询数量(意思是,来自ip地址的数量)。因此,如果它们都来自您的服务器,您将限制可以发送的查询数量,但如果您发送用户的IP地址,则限制会下降。此外,将结果缓存几天是一个额外的好处。

#1


28  

<?php
$query = 'Nikita%20Platonenko';
$url = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&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;
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>";

}

?>

As the AJAX Api is now depreciated, you can use a third party service like SerpApi to get Google results. They have a GitHub repository, and it should be easy to integrate:

由于AJAX Api现已折旧,您可以使用SerpApi等第三方服务获取Google搜索结果。他们有一个GitHub存储库,它应该很容易集成:

$query = [
    "q" => "Coffee",
    "google_domain" => "google.com",
];

$serp = new GoogleSearchResults();
$json_results = $serp.json($query);

#2


5  

The answer:

Here is what I use successfully:

这是我成功使用的:

http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=[q]&key=[key]&cx=[account]&rsz=large&userip=[userip]&start=[start]

I don't think you have full control over how many results that can be obtained in the query. But you can control the results size (rsz=large), and where it starts.

我认为您无法完全控制查询中可以获得多少结果。但是你可以控制结果大小(rsz = large),以及它的起始位置。

Other notes:

In addition, it is always good to include the user's ip address there. Because, Google limits the number of queries based unique ip addresses (meaning, how many from an ip address). So if they are all coming from your server, you will be limited in how many queries you can send, but the limits go way down if you send the user's ip address. In addition, caching the results for a couple of days is an added bonus.

此外,在那里包含用户的IP地址总是好的。因为,谷歌限制了基于唯一IP地址的查询数量(意思是,来自ip地址的数量)。因此,如果它们都来自您的服务器,您将限制可以发送的查询数量,但如果您发送用户的IP地址,则限制会下降。此外,将结果缓存几天是一个额外的好处。