Парсер images.yandex.ru

Тема в разделе "Как сделать...", создана пользователем IamWolf, 25 янв 2009.

Статус темы:
Закрыта.
  1. IamWolf

    IamWolf Постоялец

    Регистр.:
    24 фев 2008
    Сообщения:
    87
    Симпатии:
    138
    Добрый вечер.

    Требуется помощь специалистов, так и начинающих программеров.
    Думаю не только мне пригодился бы парсер картинок с images.yandex.ru

    искал, не нашел, только:

    Код:
    <?php
    $q=$_GET['q'];
    $q=str_replace(" ","+",$q);
    $str = file_get_contents('http://images.yandex.ru/yandsearch?text='.$q.'&stype=image');
    $arr = explode('3)">',$str);
    
    for($i=1;$i<=2;$i++) {
    $tmp = $arr[$i];
    $tmp = substr($tmp,strpos($tmp,'<img')+0);
    $tmp = substr($tmp,0,strpos($tmp,'</a>'));
    
    }
    print($tmp);
    ?>
    Но и тот отказался работать.
    Хотелось что бы все картинки большего размера шли в папку (автоматически сохранялись)
    В идеале, но тогда я не в том разделе, реализовать это в виде программы, дабы экономить трафик сервера.

    Очень прошу помочь моей задумке и дать ей жизнь...
     
  2. prokopa

    prokopa

    Регистр.:
    27 июн 2007
    Сообщения:
    402
    Симпатии:
    105
    Вот! не плохое продолжение :)
    PHP:
    <?php
    $q
    =$_GET['q'];
    $q=str_replace(" ","+",$q);
    $str file_get_contents('http://images.yandex.ru/yandsearch?text='.$q.'&stype=image');


    $images '<div class="b-image">BOMBNEEDEDTEXT</div>';
    $images '/'str_replace(array('/''BOMBNEEDEDTEXT''BOMBTEXT'), 
                array(
    '\/''(.*)?''.*?'), preg_quote($images)) .'/iUs';


    preg_match_all($images$str$img);

    $info $img[1];

    foreach(
    $info as $link) {

    $src '<a href="/BOMBNEEDEDTEXT" ';
    $src '/'str_replace(array('/''BOMBNEEDEDTEXT''BOMBTEXT'), 
                array(
    '\/''(.*)?''.*?'), preg_quote($src)) .'/iU';
                
    preg_match_all($src$link$source);

    $lnk '<img src="BOMBNEEDEDTEXT" ';
    $lnk '/'str_replace(array('/''BOMBNEEDEDTEXT''BOMBTEXT'), 
                array(
    '\/''(.*)?''.*?'), preg_quote($lnk)) .'/iU';
                
    preg_match_all($lnk$link$src_link);

    echo 
    "<a href='http://images.yandex.ru/".$source[1][0]."'><img src='".$src_link[1][0]."'</a><br>";

    }
    ?>
    Думаю суть понятна. Выводим найденые по запросу картинки с сылками.
    Ссыку можно использоваться чтобы дергать изображение большего размера.. по тому же принципу
     
    Revenge-R и IamWolf нравится это.
  3. IamWolf

    IamWolf Постоялец

    Регистр.:
    24 фев 2008
    Сообщения:
    87
    Симпатии:
    138
    За такое начало большое спасибо, будем дорабатывать еще...
     
  4. Revenge-R

    Revenge-R Mr. Revenge-R

    Регистр.:
    6 фев 2009
    Сообщения:
    897
    Симпатии:
    319
    Очень нужное дело! Как заставить сохранять?
     
  5. mefish

    mefish Support

    Moderator
    • Супермодератор
    Регистр.:
    30 авг 2007
    Сообщения:
    924
    Симпатии:
    646

    Хм... очень знакомое слово BOMBNEEDEDTEXT, не ты граббер под ДЛЕ делал самопальный чуть более полугода назад? :D
     
  6. Rigor

    Rigor

    Регистр.:
    1 июн 2008
    Сообщения:
    202
    Симпатии:
    33
    ЧТо-то он выводит изображения через один и всего 5 штук... Можно как-то сделать так, чтобы все сразу дергал(со всех страниц)?
     
Статус темы:
Закрыта.