web-dev-qa-db-fra.com

comment obtenir TOUS les résultats de recherche Google à l'aide de l'API

J'ai besoin d'obtenir les résultats de recherche Google pour la requête. Mais en utilisant quelque chose comme ça

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

je n'ai que 4 résultats, j'ai déjà lu sur google ajax search mais je ne pouvais pas le comprendre. Veuillez indiquer comment obtenir tous les résultats, ou tout simplement les 100 premiers résultats?

21
user1279525
<?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>";

}

?>

Comme l'API AJAX est maintenant déprécié, vous pouvez utiliser un service tiers comme SerpApi pour obtenir les résultats Google. Ils ont un référentiel GitHub , et il devrait être facile à intégrer:

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

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

La réponse:

Voici ce que j'utilise avec succès:

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

Je ne pense pas que vous ayez un contrôle total sur le nombre de résultats pouvant être obtenus dans la requête. Mais vous pouvez contrôler la taille des résultats (rsz=large), et où cela commence.

Autres notes:

De plus, il est toujours bon d'y inclure l'adresse IP de l'utilisateur. Parce que, Google limite le nombre de requêtes basées sur des adresses IP uniques (c'est-à-dire combien à partir d'une adresse IP). Donc, si elles proviennent toutes de votre serveur, vous serez limité dans le nombre de requêtes que vous pouvez envoyer, mais les limites vont très loin si vous envoyez l'adresse IP de l'utilisateur. De plus, la mise en cache des résultats pendant quelques jours est un bonus supplémentaire.

5