banner

Парсер Яндекc.картинки

Написал простенький парсер яндекс картинок.
$pages – количество страниц которые парсятся по 1 запросу.
Предварительно нужно создать папку img, туда будут сохранятся картинки.
Сами запросы кидать в фаил q.txt.

< ?php
# coding:utf-8
# author: Rushter
# site: http://klipner.ru
set_time_limit(0);
$q = file("q.txt");
$pages = 2;
$ch = curl_init();
$num = 0;
foreach ($q as $query)
{
    for ($i = 0; $i <= $pages; $i++)
    {
        curl_setopt($ch, CURLOPT_URL, "http://images.yandex.ru/yandsearch?p={$i}&ed=1&text={$query}&nl=1&stype=image");
        curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.7)');
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        $result = curl_exec($ch);
        $result = str_replace("&amp;", "&", $result);
        preg_match_all('#a href\="(.*?)" id="#', $result, $out);
        foreach ($out[1] as $iq)
        {
            curl_setopt($ch, CURLOPT_URL, "http://images.yandex.ru" . $iq);
            curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.7)');
            $result = curl_exec($ch);
            if (preg_match('#tabindex="2" href="(.*?)" onmousedown="#', $result, $im))
            {
                $img = file_get_contents($im[1]);
                file_put_contents("img/$num.jpg", $img);
                $num++;
            }
        }
    }
 
}
?>
  • http://webterrorist.ru webterrorist

    не получилось :( всё сделал, закинул на хост, запускаю, думает пару сек и выдает пустую страницу, после этого в папке пусто.

  • http://klipner.ru rushter

    Права выставили ? Файлы ещё желательно хранить в utf8.

  • http://webterrorist.ru webterrorist

    поставил права, сделал в утф, всё равно так же :(

  • http://klipner.ru rushter

    http://dl.dropbox.com/u/1579946/yandex.rar
    Попробуйте.Лучше со своей машины,а не с хостинга.

  • http://blog.cylindr.ru виззер

    может пробел надо убрать перед ?php как-то ? :D и курл наверное включить

  • http://qwazar.ru Qwazar

    Внезапно мне захотелось написать комментарий в твойм блоге :)

    З.Ы.
    А как эти картинки потом лучше обрабатывать?

  • http://klipner.ru rushter

    Я никак не обрабатываю,моя цель просто показать что на доре есть контент ввиде картинок,пусть даже не уникальный.Уникальность картинок в дорах пока не играет роль.

  • http://cmsuser.ru/ Yury

    никогда не думал, что буду так долго искать банальный простой парсер картинок…

  • http://jezuz-chrizt.livejournal.com Крайст

    О, обожаю всяческие парсеры, роботы и прочее ;)

    Кстати, а Яша не посылает в роботы, будучи неавторизованным?

    зы. Офигенски сложно замутить эту грёбаную межсайтовую авторизацию на сервисах Яши. По крайней мере, Питоном у меня пока не получилось. Разве что только посредством COM и IE :( Но это совсем быдло-подход, от отчаяния, так сказать.

    На пхп это решается проще?

    Например: авторизовался на пасспорт.яндекс.ру и погнал в картинки, в Я.ру, и прочие сервисы, где желательна или требуется авторизация.

  • http://klipner.ru rushter

    Ничего сложного нет,что на питоне,что на php.

  • http://acdel.name acdel

    Советую все парсеры запускать из консоли, а не через браузер.

  • Phantom Lord

    Спасибо огромное!!!!!! Весчь очень помогает для добавления картинок на сателлиты!

  • bk

    Скрипт парсит. Только вот как только доходит до картинки которая не грузится то зразу глушится и выдает ошибку.
    Можно чтото с эти зделать?

  • http://klipner.ru rushter

    Перед $result = curl_exec($ch); написать
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);
    Какую ошибку выдаёт ? Можно error_reporting(0); добавить.

  • http://seo-boy.ru Schnaps

    все нормально, все работает. Вопрос: никто не знает по каким критериям Я оценивает уникальная картинка или нет?

  • Дмитрий

    Rushtr спасибо за скрипт. Но у меня такая проблема. Парсю картинки. Через echo вывел echo $result.»";

    И в ответ The document has moved here.
    И такая ссылка hxxp://pass.yandex.ua/?retpath=http%3A%2F%2Fimages.yandex.ua. Не знаю что делать, елси у кого-то была такая проблема помогите.

  • http://klipner.ru rushter

    Скорей всего вас на украинский яндекс редиректит.

  • http://seo-works.ru/ Сергей

    Спасибо за скрипт. Правда выдает Warning-и при парсинге, но свою задачу он выполняет.

  • http://clubseo.su Вадим

    Вот десктопный парсер картинок http://clubseo.su/2010/06/21/parser-yandeks-kartinok/

  • http://blog.luxcash.ru/?p=81 Блог Luxury Cash » Архив блога » Делаем дорвеи для заработка на продаже копий часов – Новости, статьи, обзоры, акции, конкурсы

    [...] картинок в помощь. Как вариант можно воспользоваться бесплатным скриптом Rushter’a или платной, но не дорогой программой от Topper Harley, или [...]

  • http://shopmoviemix.com moviemix

    Скачивал давно скрипт, всё работало отлично. Вот на днях понадобилось напарсить картинок, так запускаю несколько секунд работает и всё, папка пустая. В чём может быть проблема, работает на денвере?

  • http://klipner.ru rushter

    На денвере работать будет, работает ли сейчас – не уверен.

  • http://scriptolog.com oav1980

    На vertrigo не работает