Привет всем. Так уж сложилось, что мне нужно парсить результат поиска по Google Images.
Накопал у них апи, но не совсем понял, как использовать параметр 'start'.
Текущий код:
function doGoogle($resultStorage, $query, $numImages)
{
$i = $k = $n = 0;
while(count($resultStorage) < $numImages)
{
$base_url = 'http://ajax.googleapis.com/ajax/services/search/images?v=1.0';
$url = $base_url;
if ($i == 0)
$url .= '&imgsz=large&q='.urlencode($query).'&start=00';
else
$url .= '&imgsz=large&q='.urlencode($query).'&start='.$k.$n;
$curl = curl_init();
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_URL, $url);
$json = curl_exec($curl);
curl_close($curl);
$data = json_decode($json);
echo '<div style="clear: both"></div>Page: <b>' . $i . '</b><br />Url: <b>' . $url . '</b><br />';
foreach($data->responseData->results as $v)
{
// Если набрали нужное вол-во картинок - выходим
if (count($resultStorage) == $num) break;
// Помещаем очередной адрес картинки в массив
array_push($resultStorage, $v->tbUrl);
// Показываем картинку
echo "<div style='float: left'><a href='{$v->unescapedUrl}'><img src='{$v->tbUrl}' /></a></div>";
}
$i++;
$k+=2;
$n++;
}
};
Я не уверен на счет использования переменных '$k; $n'.
Если так смотреть, то количество картинок для одного поискового запроса через апи ограничены, верно?
Сталкивался ли кто с этим. Как я понимаю, наверное. придется парсить вручную без апи.