Спарсить рекапчу

Тема в разделе "PHP", создана пользователем k2651, 2 июл 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. k2651

    k2651

    Регистр.:
    21 дек 2008
    Сообщения:
    169
    Симпатии:
    103
    Здраствуйте.
    Пишу небольшой скриптик, возникла проблема. Не могу сохранить картинку рекапчи.
    Вот код:
    PHP:
    if (preg_match('|src="(http://api.recaptcha.net/noscript\?k=.*?)"|is'$page$out))
            {
            echo 
    '<font color=green><b>Шаг1 прошел успешно</b></font><br>'
            
    $captcha_url $out[1];
            echo 
    'Входные данные: <b>'.$out[1].'</b><br />';
            
    $html $curl->get($captcha_url);

            
    preg_match('|src="image\?c=(.*?)"|is'$html$out);
            
                    echo 
    'Входные данные: <b>'.$out[1].'</b><br />';
                    
            
        
    file_put_contents('./capchs/capcha_2.jpeg'file_get_contents('http://api.recaptcha.net/image?c='.$out[1]));
    echo 
    'http://api.recaptcha.net/image?c='.$out[1].'</b><br />';
    Результат работы скрипта:
    Входные данные: http://api.recaptcha.net/noscript?k=6LdM3gIAAAAAALn_douM7nLVj--sXSIlbpPstU6t
    Входные данные: 03AHJ_VuuvFGISaqtiZbd1vbGlDYDNwRXlosq_njjgcZSHAR-Xe9ZKi3AgPMOZ79JT8fjb44k6dOHlqG6z9YDUB0YLGR_HSoGM-2KkLstLdEUDN-arcpKVByGj0TCGWEevcwOICGn67xsvapXuJg1VUkdxk6lWglfjPA
    http://api.recaptcha.net/image?c=03...yGj0TCGWEevcwOICGn67xsvapXuJg1VUkdxk6lWglfjPA
    Т.е. скрипт парсит все нормально.
    Проблема в том, что я не могу сохранить изображение. Еще вчера все было хорошо, а сегодня ничего не пашет. Всю голову сломал.
    Может проблема в настройках php.ini ?:nezn:
    Прошу помощи:thenks:
     
  2. DrakonHaSh

    DrakonHaSh

    Регистр.:
    29 июн 2010
    Сообщения:
    358
    Симпатии:
    122
    для чтения url в file_get_contents нужен
    allow_url_fopen On
    хотя по дефолту он обычно включен
     
  3. Xel'[Naga]

    Xel'[Naga] Писатель

    Регистр.:
    23 мар 2007
    Сообщения:
    9
    Симпатии:
    0
    Ты не можешь сохранить изображение или не оно не скачивается? Пробовал смотреть что вообще скачивается?

    echo $curl->get('http://api.recaptcha.net/image?c='.$out[1]);
    Ну примерно вот так....насчёт file_get_contents() я лично не люблю его использовать для внешних сайтов.
     
  4. Google.com

    Google.com Читатель

    Заблокирован
    Регистр.:
    16 фев 2010
    Сообщения:
    250
    Симпатии:
    295
    PHP:
    $fp fsockopen("api.recaptcha.net"80$errno$errstr30);
    if (!
    $fp) {
        echo 
    "$errstr ($errno)<br />\n";
    } else {
        
    $out "GET /image?c=".$out[1]." HTTP/1.1\r\n";
        
    $out .= "Host: api.recaptcha.net\r\n";
        
    $out .= "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2) Gecko/20100115 Firefox/3.6\r\n";
        
    $out .= "Accept-Language: ru,en-us;q=0.7,en;q=0.3\r\n";
        
    $out .= "Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7\r\n";
        
    $out .= "Keep-Alive: 115\r\n";        
        
    $out .= "Connection: Close\r\n\r\n";
        
    fwrite($fp$out);
        while (!
    feof($fp)) {
            
    $resp=$resp.fgets($fp128);
        }
        
    fclose($fp);
    }
    }

    preg_match('/\r\n\r\n([\w\d]{3}\r\n)?(.*)/ms',$resp,$cp);
    $f fopen("img.jpeg""w");
    fwrite($f,$cp[2]);
    fclose($f);
    Пробуй серез сокеты
     
Статус темы:
Закрыта.