Парсер картинок google images
Категория: / DEV Блог
/ PHP (LAMP)
Нужны картинки для наполнения сайта?
С помощью простого скрипта можно одолжить у гугла тематических изображений для нужд партии.
PHP Скрипт:
Запускаем php parser.php,
в текущей директории появится папка с картинками images/{запрос}/N.jpg
С помощью простого скрипта можно одолжить у гугла тематических изображений для нужд партии.
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
>> preg_match_all('#imgurl\\\x3d(.*)\\\x26#U',$result, $m);
заменить
>> preg_match_all('#imgurl\=(.*)\&#U',$result, $m);
вот сюда foreach($m[1] as $_m) передаётся пустой массив
сделай к своему сценарию вот это ещё хотя бы, чтобы люди не мучались сильно
mkdir("img/$_qfs", null, true);
chmod("img/$_qfs", 0755);
mkdir("images/$_qfs", 0777);