Мне нужно получить результаты поиска Google для запроса. Но используя что-то подобное
$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)
Я получаю только 4 результата, я уже читал о поиске google ajax, но не мог понять. Пожалуйста, сообщите, как получить все результаты, или только первые 100 результатов?
<?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>"; } ?>
Вот что я успешно использую:
http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=[q]&key=[key]&cx=[account]&rsz=large&userip=[userip]&start=[start]
Я не думаю, что у вас есть полный контроль над тем, сколько результатов можно получить в запросе. Но вы можете контролировать размер результатов ( rsz=large
) и где он начинается.
Кроме того, всегда полезно включать туда IP-адрес пользователя. Потому что Google ограничивает количество запросов на основе уникальных IP-адресов (что означает, сколько из ip-адреса). Поэтому, если все они приходят с вашего сервера, вы будете ограничены количеством запросов, которые вы можете отправить, но ограничения идут вниз, если вы отправляете IP-адрес пользователя. Кроме того, кеширование результатов на пару дней – дополнительный бонус.