Парсер картинок google images

Категория: / DEV Блог / PHP (LAMP)
Нужны картинки для наполнения сайта?
С помощью простого скрипта можно одолжить у гугла тематических изображений для нужд партии.

PHP Скрипт:

<?php
set_time_limit(0);
 
// Тема картинок.
$q = 'komatsu';
 
//Глубина парсинга. Число кратное 20.
$count = 100;
 
if(!$q) die('no query');
 
$q = explode("\r\n", $q);
 
foreach($q as $_q)
{
$i = 1;
 
$_qfs = iconv('UTF-8', 'WINDOWS-1251', $_q);
 
mkdir("images/$_qfs", null, true);
 
for($b=0; $b <= $count; $b+=20)
{
 
$url = 'http://www.google.com/search?q=' . urlencode($_q) . '&oe=utf-8&rls={moz:distributionID}:{moz:locale}:{moz:official}&client=firefox-a&um=1&ie=UTF-8&tbm=isch&source=og&sa=N&hl=en&tab=wi&sa=N&start='.$b.'&ndsp=20';
printf("GET %s \n", $url);
 
$result = file_get_contents($url);
 
// imgurl\x3dhttp://mirsladosti.ru/wp-content/uploads/2008/09/19.gif\x26
preg_match_all('#imgurl\\\x3d(.*)\\\x26#U',$result, $m);
 
foreach($m[1] as $_m)
{
 
$d = "images/{$_qfs}/{$i}." . substr($_m, -3, 3);
 
if (file_exists($d)) {
        $i++;
        printf("Skip %s -> %s \n", $_m, $d);
}
else
if (($buffer = @file_get_contents($_m)) && !empty($buffer)) {
 
        file_put_contents($d, $buffer);
        printf("Copy %s -> %s \n", $_m, $d);
        $i++;
}
 
 
}
 
flush();
 
}
}


Запускаем php parser.php,
в текущей директории появится папка с картинками images/{запрос}/N.jpg