спарсить картинки

Тема в разделе "PHP", создана пользователем flat73, 24 мар 2011.

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

    flat73 Постоялец

    Регистр.:
    15 авг 2008
    Сообщения:
    55
    Симпатии:
    2
    Есть ссылка как спарсить от туда все картинки?
    Как это лучше реализовать на php?
     
  2. citrus

    citrus Постоялец

    Регистр.:
    5 ноя 2006
    Сообщения:
    58
    Симпатии:
    8
    Откуда оттуда ? Напиши четко, что у тебя есть и что тебе надо.
    А то вообще ничего не понятно.
     
  3. gres_18

    gres_18 Pythonобандерівець®

    Регистр.:
    26 апр 2009
    Сообщения:
    407
    Симпатии:
    206
    Попробуй так спарсить:
    PHP:
    <?php 
    $file 
    file_get_contents('http://any.url');
    $pattern '#img src\s*=\s*("|\')?([^"\']+)(?(1)\1)#i';
    preg_match_all$pattern$file$matches );
    ?>
    <pre>
    <?php
    var_dump
    ($matches);
    ?>
    </pre>
    Прямо "в лоб" :ay:
     
  4. flat73

    flat73 Постоялец

    Регистр.:
    15 авг 2008
    Сообщения:
    55
    Симпатии:
    2
    http://www.eroticbeauties.net/pics/sensual-erotic-jill-6130.html
    вот там есть картинки как задать вот эту ссылку можно вытащить все картинки с девушкой и сохранить их. картинки надо вытащить не маленькие а большие

    Добавлено через 1 минуту
    что то не работает(
     
  5. zzallexx

    zzallexx

    Регистр.:
    11 июн 2008
    Сообщения:
    1.036
    Симпатии:
    699
    PHP:
    <?php 
    //error_reporting(0);
    ini_set('max_execution_time',0);
    //--------------------------конфиг **х------------------
    $url="http://www.eroticbeauties.net/pics/sensual-erotic-jill-6130.html"//урл с которого тянем картинки

    function get_web_page$url )
    {
      
    $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$url );

      
    curl_setopt($chCURLOPT_RETURNTRANSFER1);  // возвращает веб-страницу
      
    curl_setopt($chCURLOPT_REFERER,"http://google.com/");
      
    curl_setopt($chCURLOPT_HEADER0);           // не возвращает заголовки
      
    curl_setopt($chCURLOPT_FOLLOWLOCATION10);   // переходит по редиректам
      
    curl_setopt($chCURLOPT_ENCODING"");        // обрабатывает все кодировки
      
    curl_setopt($chCURLOPT_USERAGENT$uagent);  // useragent
      
    curl_setopt($chCURLOPT_CONNECTTIMEOUT120); // таймаут соединения
      
    curl_setopt($chCURLOPT_TIMEOUT120);        // таймаут ответа
      
    curl_setopt($chCURLOPT_MAXREDIRS10);       // останавливаться после 10-ого редиректа
     
      
      
    $content curl_exec$ch );
      
    $err     curl_errno$ch );
      
    $errmsg  curl_error$ch );
      
    $header  curl_getinfo$ch );
      
    curl_close$ch );

      
    $header['errno']   = $err;
      
    $header['errmsg']  = $errmsg;
      
    $header['content'] = $content;
      return 
    $header;
    }

    if(!
    is_dir("img")){mkdir("img");}
    $bi 0;
        
    $result=get_web_page$url );
        while(
    $bi 10)
        {
            if(
    $result == '')
            {
                echo 
    '<b>Ошибка соединения(1). Пробуем еще раз.<br></b>';flush();ob_flush();flush();
                
    $result=get_web_page$url );
                
    $bi++;
            }
            else 
    $bi 20;
        }
        
    //print_r($result);
        
    $content $result['content'];
        
    //-------------------------------------$photo-----------------------------------------------------
    preg_match_all('/src=\'(\/source_galleries\/.*?)\'/si',$content,$foto);//'/source_galleries/the-life-erotic-jill-soft/tn/12.jpg'
    $page=count($foto[1]);                                                 ///source_galleries/the-life-erotic-jill-soft/13.jpg
    for ($p=0;$p<$page;$p++){
    $photo=trim($foto[1][$p]); 
    $photo=str_replace('tn/','',$photo); //если нужны маленькие закоментировать эту строку
    $url_img="http://www.eroticbeauties.net".$photo;                                                         
    echo 
    "Тянем картинку ".$url_img."<br>"flush();ob_flush();flush();
    $home_url_img=$_SERVER['DOCUMENT_ROOT']."/img/".basename($url_img);

    if (!
    file_exists($home_url_img)) { 
       
    $image=file_get_contents($url_img);
       
    $fp=fopen($home_url_img,"w+");
       
    fwrite($fp,$image);
       
    fclose($fp); }
    }
    echo 
    '<b>картинок больше нет</b>';    

    ?>
    парсит большие картинки и складывает в папочку img
     
  6. flat73

    flat73 Постоялец

    Регистр.:
    15 авг 2008
    Сообщения:
    55
    Симпатии:
    2
    пишет ошибку Fatal error: Call to undefined function curl_init() in Z:\home\localhost\www\parser\parser_img.php on line 11
     
  7. zzallexx

    zzallexx

    Регистр.:
    11 июн 2008
    Сообщения:
    1.036
    Симпатии:
    699
    держи без курла тогда :)
    PHP:
    <?php  
    //error_reporting(0); 
    ini_set('max_execution_time',0); 
    //--------------------------конфиг **х------------------ 
    $url="http://www.eroticbeauties.net/pics/sensual-erotic-jill-6130.html"//урл с которого тянем картинки 

    if(!is_dir("img")){mkdir("img");} 
    $content=file_get_contents($url); 
    //-------------------------------------$photo----------------------------------------------------- 
    preg_match_all('/src=\'(\/source_galleries\/.*?)\'/si',$content,$foto);//'/source_galleries/the-life-erotic-jill-soft/tn/12.jpg' 
    $page=count($foto[1]);                                                 ///source_galleries/the-life-erotic-jill-soft/13.jpg 
    for ($p=0;$p<$page;$p++){ 
    $photo=trim($foto[1][$p]);  
    $photo=str_replace('tn/','',$photo); //если нужны маленькие закоментировать эту строку 
    $url_img="http://www.eroticbeauties.net".$photo;                                                          
    echo 
    "Тянем картинку ".$url_img."<br>"flush();ob_flush();flush(); 
    $home_url_img=$_SERVER['DOCUMENT_ROOT']."/img/".basename($url_img); 

    if (!
    file_exists($home_url_img)) {  
       
    $image=file_get_contents($url_img); 
       
    $fp=fopen($home_url_img,"w+"); 
       
    fwrite($fp,$image); 
       
    fclose($fp); } 

    echo 
    '<b>картинок больше нет</b>';     

    ?>
     
  8. DenisK

    DenisK

    Регистр.:
    8 фев 2007
    Сообщения:
    205
    Симпатии:
    13
    Это потому что хостер не поддерживает.
    можно к нему обратиться и он скорее всего включит .
     
  9. flat73

    flat73 Постоялец

    Регистр.:
    15 авг 2008
    Сообщения:
    55
    Симпатии:
    2
    я пробывал скрипт на локал хосте, сегодня тогда попробую на нормальном
     
  10. Crucifer

    Crucifer

    Регистр.:
    6 фев 2007
    Сообщения:
    517
    Симпатии:
    249
    пакет расширений для денвера поставьте

    http://www.denwer.ru/packages/php5.html

    в файле php.ini раскоментируйте строчку с curl