Граббер картинок с ucoz

Тема в разделе "PHP", создана пользователем Iven, 26 июл 2011.

Модераторы: latteo
  1. Iven

    Iven Создатель

    Регистр.:
    11 фев 2007
    Сообщения:
    47
    Симпатии:
    2
    не удается cкопировать картинки с сайтов типа ucoz к себе на хостинг (например от сюда)
    пробовал всякие curl, fopen, copy - не получается

    подскажите в чем фишка ?
     
  2. autos

    autos

    Регистр.:
    14 июл 2007
    Сообщения:
    184
    Симпатии:
    48
    скорей всего надо рефере подставлять, в любом случае надо смотреть что скачивает, какой код ошибки..
     
  3. xpert13

    xpert13 <(*_*)>

    Moderator
    Регистр.:
    7 ноя 2008
    Сообщения:
    182
    Симпатии:
    453
    Сложно найти ошибку не видя исходных кодов.
     
  4. Iven

    Iven Создатель

    Регистр.:
    11 фев 2007
    Сообщения:
    47
    Симпатии:
    2
    не проблема
    вот например

    PHP:
    $ch curl_init('http://домен из скрытого текста в первом посте/foto1/1/22-1-0-2595.jpg');
    $fp fopen('/home/uploads/img/i4.jpg''wb');
    curl_setopt($chCURLOPT_FILE$fp);
    curl_setopt($chCURLOPT_REFERER'http://домен из скрытого текста в первом посте');
    curl_setopt($chCURLOPT_HEADER0);
    curl_exec($ch);
    curl_close($ch);
    fclose($fp);
    в результате получается пустой файл размером 765 байт

    а операции без curl дают такой вот примерно резьтат
    getimagesize(_http://....jpg) [function.getimagesize]: failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden
     
  5. Iven

    Iven Создатель

    Регистр.:
    11 фев 2007
    Сообщения:
    47
    Симпатии:
    2
    ну что без вариантов перед жестокой реальностью ? )
     
  6. zzallexx

    zzallexx

    Регистр.:
    11 июн 2008
    Сообщения:
    1.036
    Симпатии:
    699
    скорее всего из-за отсутствия юзерагента(браузера) вот так все тянет без проблем
    PHP:
    <?php
    $fp 
    fopen('image.jpg''w'); 
     
    $uagent "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.8) Gecko/2009032609 Firefox/3.0.8";
      
    $ch curl_init('http://gopora.ucoz.ru/foto1/1/22-1-0-2595.jpg'); 
      
    curl_setopt($chCURLOPT_RETURNTRANSFER1);  // возвращает веб-страницу
      
    curl_setopt($chCURLOPT_REFERER,"http://google.com/");
      
    curl_setopt ($chCURLOPT_SSL_VERIFYPEER0);
      
    curl_setopt($chCURLOPT_HEADER0);           // не возвращает заголовки
      
    curl_setopt($chCURLOPT_FOLLOWLOCATION10);   // переходит по редиректам
      
    curl_setopt($chCURLOPT_ENCODING"");        // обрабатывает все кодировки
      
    curl_setopt($chCURLOPT_USERAGENT$uagent);  // useragent
      
    curl_setopt($chCURLOPT_CONNECTTIMEOUT20); // таймаут соединения
      
    curl_setopt($chCURLOPT_TIMEOUT20);        // таймаут ответа
      
    curl_setopt($chCURLOPT_MAXREDIRS10);       // останавливаться после 10-ого редиректа
    $content curl_exec($ch); 
    fwrite($fp,$content);
    curl_close($ch); 
    fclose($fp); 
     
  7. trooll

    trooll PHP кодер

    Регистр.:
    22 дек 2008
    Сообщения:
    503
    Симпатии:
    116
    Какие к черту исходные коды, ты пробовал вообще обратиться к картинки хоть как нибудь?

    Я пробовал через file_get_contents(), не проходит, завтра попробую курлом (сегодня уже не в состояние), точно знаю писал парсеры да и множество самбитеров под юкозовский движок все прекрасно работало
     
  8. zzallexx

    zzallexx

    Регистр.:
    11 июн 2008
    Сообщения:
    1.036
    Симпатии:
    699
    там 403 ошибку выдавало и выдает без употребления CURLOPT_USERAGENT