Flickr Parser - берем image контент в нужном количестве

(Ответов: 12, Просмотров: 6310)
Парсинг - процесс скачивания определенных данных с сайтов с помощью автоматизированных программ и скриптов, так называемых парсеров. Зачем нужен парсинг? Да банально для того, чтобы извлечь необходимую информацию с сайтов, экономя при это время. К примеру, вам нужно спарсить несколько тысяч описаний фильмов и залить их на новый сайт. Вы же не будете делать руками, верно? Вот для этого и нужен парсинг.
Страница 1 из 2 12 Последняя
  1. Гуру Аватар для 24110
    • Регистрация: 07.09.2009
    • Сообщений: 1,649
    • Репутация: 91
    Как-то спрашивали про парсер Flickr, вот и решил написать. Поиском не нашел.

    Немного технической информации - используется Flickr API. Для использования API необходимо получить ключик (достаточно зарегиться на Yahoo и хорошо попрописть Flickr дать хэш). В скрипте мой хэш. Какие ограничения накладывает Фликр на количество запросов - не знаю. Если будут санкции, то зарегистрируйте себе отдельный API Key :) Также необходима либа phpFlickr.

    Парсер может выводить картинки как на экран, так и писать в локальную папку. Имеется выбор размеров, задается количество необходимых картинок.

    Скрипт писался в течении 10 минут, так что если будут косяки или пожелания по доделке/переделке - оставляйте в теме.

    Вот сам index.php:
    PHP код:
    <?php


    require_once './phpFlickr-2.3.0.1/phpFlickr.php' ;

    $API_KEY '76330238527b84803a075a1f68a4879d' ;

    $size_array = array( 
                         
    't' => array( 'name'=>'thumbnail''title' => 'thumbnail, 100 on longest side' ),
                         
    'm' => array( 'name'=>'small''title' => 'small, 240 on longest side' ),
                         
    '-' => array( 'name'=>'medium''title' => 'medium, 500 on longest side' ),
                         
    'b' => array( 'name'=>'large''title' => 'large, 1024 on longest side (only exists for very large original images)' ),
                         
    'o' => array( 'name'=>'o''title' => 'original' ) ) ;


    $flickr = new phpFlickr$API_KEY ) ;

    $folder_to_uplaod 'flickr/upload' ;

    if ( isset( 
    $_POST['submit'] ) )
    {

        
    $text_to_search = !empty( $_POST['text'] ) ? trim$_POST['text'] ) : '' ;
        
    $size_to_search = isset( $_POST['size'] ) && isset( $size_array[$_POST['size']] ) ? $size_array[$_POST['size']]['name'] : 'medium' ;
        
    $count_to_search = isset( $_POST['count'] ) ? intval$_POST['count'] ) : 10 ;
        
    $upload = !empty($_POST['upload'] ) && in_array$_POST['upload'], array( 'display''save' ) ) ? $_POST['upload'] : 'display' ;

        
    $search $flickr->photos_search( array( 'media' => 'photos' 'text' => $text_to_search'per_page' => $count_to_search ) ) ;
        
    $photos = array() ;

        foreach ( 
    $search['photo'] as $k=>$v )
            
    $photos[] = $flickr->buildPhotoURL$v$size_to_search ) ;

        if ( 
    'display' == $upload )
        {
            foreach ( 
    $photos as $k=>$v )
                echo 
    '<img src="' $v '" />' ;
        }
        else
        {
            
    $new_dir $_SERVER['DOCUMENT_ROOT'] . '/' $folder_to_uplaod '/' time() . '/';

            if ( !
    file_exists$new_dir ) )
                
    mkdir$new_dir0777 ) ;

            foreach ( 
    $photos as $k=>$v )
            {
                
    file_put_contents$new_dir substr$vstrrpos$v'/' ) ), file_get_contents$v ) ) ;
            }
        }


    }



    ?><html>

        <head>
            <title>Flickr Parser</title>
            <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
        </head>
        
        <body>

            <form action="?" method="post">
                Текст, картинки (тайтл, дескрипшн): <input type="text" name="text" value="search..."><br />
                Размер картинки:
                <select name="size">
                    <?php foreach ( $size_array as $k=>$v ) : ?>
                        <option value="<?= $k ?>"><?= $v['title'?></option>
                    <?php endforeach ; ?>
                </select>
                <br />
                Количество картинок (0 - без ограничений): <input type="text" name="count" value="0" /><br />
                Куда заливать картинки:
                <select name="upload">
                    <option value="display">вывести на экран</option>
                    <option value="save">закачать в папку <?= htmlspecialchars$folder_to_uplaod ?></option>
                </select><br />
                <input type="submit" name="submit" value="спарсить!" />

            </form>

        </body>

    </html>
    Тут же меняем папку для закачки картинок. Если надо - $API_KEY.

    Результат парсинга с выводом на экран выглядит так:


    Исходники вместе с библиотекой в аттаче.

    Сервис для хранения изображений flickr.
    Вложения
    Последний раз редактировалось grazer; 10.05.2010 в 20:08.
    Парам-пам-пам!
    • 1

    Спасибо сказали:

    Dr.Gonzo(11.09.2009), Ketaminum(16.01.2012), SerdjioStrel(12.09.2009),
  2. Banned
    • Регистрация: 08.09.2009
    • Сообщений: 1,478
    • Репутация: 80
    • Webmoney BL: ?
    Я использую клас для поиска имаг в гугле. А вообще для реально промышленных обьёмов есть такой софт - Extrime picture finder. Парсит в о много потоков, с гугла, яхи, фликра и т.д.

    http://www.phpclasses.org/browse/package/2311.html
    • 0
  3. Гуру Аватар для 24110
    • Регистрация: 07.09.2009
    • Сообщений: 1,649
    • Репутация: 91
    То поиск в гугле, а это сразу во фликре через API. Сколько вчера качал картинки, ни разу IP ни блокнули. Закрадывается подозрение, что с этим намного попроще, чем с баном IP у гугла при частых запросах.
    Парам-пам-пам!
    • 0
  4. Гуру Аватар для Dr.Gonzo
    • Регистрация: 03.09.2009
    • Сообщений: 1,503
    • Репутация: 64
    Ого, полезная софтина! Респект, если действительно сам написал.

    Можно тематических фотографий для сплога надёргать сразу несколько сотен, и затем вставлять по мере наполнения сплога в посты.
    • 0
  5. Гуру Аватар для 24110
    • Регистрация: 07.09.2009
    • Сообщений: 1,649
    • Репутация: 91
    Ну как сам: API готовое, библиотека для работы с API готовая. Из своего - прикрутил либу к скрипту, да получил API Key
    Парам-пам-пам!
    • -1
  6. Member Аватар для Sqone
    • Регистрация: 11.09.2009
    • Сообщений: 89
    • Репутация: 8
    респект
    • 0
  7. Опытный Аватар для SerdjioStrel
    • Регистрация: 11.09.2009
    • Сообщений: 346
    • Репутация: 39
    • Webmoney BL: ?
    Ух ты. Будет чем заняться на выходных! Спасибо, разберемся
    • 0
  8. Гуру Аватар для 24110
    • Регистрация: 07.09.2009
    • Сообщений: 1,649
    • Репутация: 91
    Цитата Сообщение от SerdjioStrel Посмотреть сообщение
    Ух ты. Будет чем заняться на выходных! Спасибо, разберемся
    Всегда пожалуйста. Если будут пожелания по доделке, выслушаю. Если надо будет встроить в дорген, то тоже можно подумать над этим
    Парам-пам-пам!
    • 0
  9. Senior Member Аватар для Olimpienok
    • Регистрация: 04.09.2009
    • Сообщений: 129
    • Репутация: 10
    Если надо будет встроить в дорген, то тоже можно подумать над этим
    если бы подобное сделал - тебе бы тут памятник поставили. Какой-нибудь мод для "кнопке" просто суперской идеей был бы
    Олимпиёнок живет тут :eek:
    • 0
  10. Опытный Аватар для SerdjioStrel
    • Регистрация: 11.09.2009
    • Сообщений: 346
    • Репутация: 39
    • Webmoney BL: ?
    Кстати, а как насчет названия картинок? Это походу даст больший плюс, если их именовать ключевиками или названиями препаратов по сравнению с присваиваемыми цифровыми уникальными именами
    • 0
Страница 1 из 2 12 Последняя

Похожие темы

Темы Раздел Ответов Последний пост
Модифицируем Red Button под парсинг картинок с Flickr
Обучающие статьи 17 04.06.2010 19:34
Flickr
Прочее 1 19.04.2010 18:35
ищу WP Super Image Plugin
Софт, скрипты, сервисы 4 05.04.2010 23:59
Где берем фарма-контент?
Вопросы от новичков 12 05.03.2010 12:16
Помогите поставить Image CMS
Прочее 4 25.01.2010 00:34

Интересные темы

парсер контента php

Обзоры популярных парсеров контента php, выбираем оптимальное решение под свои нужды, читаем материал.

парсер картинок

Нужен ли парсер картинок если у тебя только один сайт, стоит ли его использовать.

парсинг текста

Какими инструментами можно проводить парсинг текста, какие готвые парсеры представлены в сети.

У кого попросить инвайт?

Вы можете попросить инвайт у любого модератора:

Информеры