Все ленты — последние статьи

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

Нужны картинки для наполнения сайта?
С помощью простого скрипта можно одолжить у гугла тематических изображений для нужд партии.

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

 

=========

5] Гость — 10:42, 12 Октябрь, 2012
вот так работает:

>> preg_match_all('#imgurl\\\x3d(.*)\\\x26#U',$result, $m);

заменить

>> preg_match_all('#imgurl\=(.*)\&#U',$result, $m);
4] Гость — 17:48, 12 Сентябрь, 2012
подтверждаю. не работает

вот сюда foreach($m[1] as $_m) передаётся пустой массив

сделай к своему сценарию вот это ещё хотя бы, чтобы люди не мучались сильно

mkdir("img/$_qfs", null, true);
chmod("img/$_qfs", 0755);
3] Гость — 06:34, 31 Май, 2012
ne rabotaet
2] Гость — 20:56, 13 Март, 2012
Не работает, к тому же надо было указать права на папку
mkdir("images/$_qfs", 0777);
1] Гость — 08:28, 17 Январь, 2012
немножечко поправил и теперь все работает