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

Статус
В этой теме нельзя размещать новые ответы.

k2651

Постоялец
Регистрация
21 Дек 2008
Сообщения
169
Реакции
107
Здраствуйте.
Пишу небольшой скриптик, возникла проблема. Не могу сохранить картинку рекапчи.
Вот код:
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 />';
Результат работы скрипта:
Входные данные: Для просмотра ссылки Войди или Зарегистрируйся
Входные данные: 03AHJ_VuuvFGISaqtiZbd1vbGlDYDNwRXlosq_njjgcZSHAR-Xe9ZKi3AgPMOZ79JT8fjb44k6dOHlqG6z9YDUB0YLGR_HSoGM-2KkLstLdEUDN-arcpKVByGj0TCGWEevcwOICGn67xsvapXuJg1VUkdxk6lWglfjPA
Для просмотра ссылки Войди или Зарегистрируйся
Т.е. скрипт парсит все нормально.
Проблема в том, что я не могу сохранить изображение. Еще вчера все было хорошо, а сегодня ничего не пашет. Всю голову сломал.
Может проблема в настройках php.ini ?:nezn:
Прошу помощи:thenks:
 
для чтения url в file_get_contents нужен
allow_url_fopen On
хотя по дефолту он обычно включен
 
Ты не можешь сохранить изображение или не оно не скачивается? Пробовал смотреть что вообще скачивается?

echo $curl->get('http://api.recaptcha.net/image?c='.$out[1]);
Ну примерно вот так....насчёт file_get_contents() я лично не люблю его использовать для внешних сайтов.
 
  • Заблокирован
  • #4
PHP:
$fp = fsockopen("api.recaptcha.net", 80, $errno, $errstr, 30);
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($fp, 128);
    }
    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);
Пробуй серез сокеты
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху