AudioRecaptcha

Adamastor

Client
Регистрация
15.05.2016
Сообщения
282
Благодарностей
14
Баллы
18
Здравствуйте уважаемые форумчане и администрация!

Столкнулся с проблемой очень плохого распознавания АудиоРекапчи.

Реализуется все по следующей схеме:
1) мой JS скрипт выковыривает ссылку на аудиофайл Рекапчи и отсылает ссылку на мой PHP скрипт;
2) PHP сохраняет аудио файл в формате .mp3 (возможно я формат перепутал?);
3) сохраненный файл опять открывается скриптом и записывается в переменную $buffer (требовалось разделить для теста функции, в будущем этой махинации сохранения в файл и повторного его открытия не будет, все будет проходить одним потоком), после чего переменная $buffer передается на КапМонстер (свой IP я подотру);
4) Приходит ответ. Ответ сохраняется в файл "log.txt". Удивительно но КапМонстер в своем логе пишет ответ "841", а в "log.txt" записывает все время разное значение (всего трижды пробовал) "ОK|349" / "ОK|147" / "ОK|374"

Посмотрите мой PHP:
1) возможно я Header неправильно указал?;
2) возможно передаваемые параметры неправильные? Например "CapMonsterModule=ZennoLab.AudioReCaptcha&ParallelMode=true";
3) возможно дело в формате файла?

Файл с моим PHP скриптом и файл с аудиозаписью: http://file.sampo.ru/q99sw6/

Заранее благодарен за ответ! С уважением, Олег.
 

amyboose

Client
Регистрация
21.04.2016
Сообщения
2 312
Благодарностей
1 191
Баллы
113
А есть base64 кодировка файла?
 

Gfoblin

Client
Регистрация
30.05.2013
Сообщения
4 596
Благодарностей
1 014
Баллы
113
Здравствуйте уважаемые форумчане и администрация!

Столкнулся с проблемой очень плохого распознавания АудиоРекапчи.

Реализуется все по следующей схеме:
1) мой JS скрипт выковыривает ссылку на аудиофайл Рекапчи и отсылает ссылку на мой PHP скрипт;
2) PHP сохраняет аудио файл в формате .mp3 (возможно я формат перепутал?);
3) сохраненный файл опять открывается скриптом и записывается в переменную $buffer (требовалось разделить для теста функции, в будущем этой махинации сохранения в файл и повторного его открытия не будет, все будет проходить одним потоком), после чего переменная $buffer передается на КапМонстер (свой IP я подотру);
4) Приходит ответ. Ответ сохраняется в файл "log.txt". Удивительно но КапМонстер в своем логе пишет ответ "841", а в "log.txt" записывает все время разное значение (всего трижды пробовал) "ОK|349" / "ОK|147" / "ОK|374"

Посмотрите мой PHP:
1) возможно я Header неправильно указал?;
2) возможно передаваемые параметры неправильные? Например "CapMonsterModule=ZennoLab.AudioReCaptcha&ParallelMode=true";
3) возможно дело в формате файла?

Файл с моим PHP скриптом и файл с аудиозаписью: http://file.sampo.ru/q99sw6/

Заранее благодарен за ответ! С уважением, Олег.
Хедер там ваще не нужен )
Дык у тебя скрипт отправляет ему че надо... и получает номер того чего тебе надо потом еще раз запросить (номер)...
Тебе над скрипт дописать чето типа этого
$out = curl_exec($curl);
$o=explode("|"$out);
if ($o[0]=="OK")
{
sleep (5);//пауза любая
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "http://IP:port/in.php?key=sdfsdfsdf&action=get&id=".$o[1]);
curl_setopt($curl, CURLOPT_RETURNTRANSFER,true);
$out = curl_exec($curl);
}
 
  • Спасибо
Реакции: Adamastor

Adamastor

Client
Регистрация
15.05.2016
Сообщения
282
Благодарностей
14
Баллы
18

Adamastor

Client
Регистрация
15.05.2016
Сообщения
282
Благодарностей
14
Баллы
18
Хедер там ваще не нужен )
Дык у тебя скрипт отправляет ему че надо... и получает номер того чего тебе надо потом еще раз запросить (номер)...
Тебе над скрипт дописать чето типа этого
$out = curl_exec($curl);
$o=explode("|"$out);
if ($o[0]=="OK")
{
sleep (5);//пауза любая
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "http://IP:port/in.php");
curl_setopt($curl, CURLOPT_RETURNTRANSFER,true);
//curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, "key=sdfsdfsdf&id=".$o[1]);
$out = curl_exec($curl);
}
Блин точно, я идиот.

Но проблему с неправильным распознаванием КапМонстра это не решит... КапМонстер пишет ответ 841, хотя на самом деле должен быть 1471728700
 

amyboose

Client
Регистрация
21.04.2016
Сообщения
2 312
Благодарностей
1 191
Баллы
113
base64_encode($buffer);

Вот такую строчку в PHP если добавить, то будет base64 кодировка.
Ну добавь её и ещё посмотри внимательнее все ли заголовки отправлены правильно (сниффер в помощь)
 

Gfoblin

Client
Регистрация
30.05.2013
Сообщения
4 596
Благодарностей
1 014
Баллы
113
Блин точно, я идиот.

Но проблему с неправильным распознаванием КапМонстра это не решит... КапМонстер пишет ответ 841, хотя на самом деле должен быть 1471728700
Сохрани сам файл послушай, 99% дело в нем.
К томуже ты его сначало в переменную читаешь, потом сохраняешь, потом обратно читаешь )
Но сохранить надо и послушать че там вылезло
 

amyboose

Client
Регистрация
21.04.2016
Сообщения
2 312
Благодарностей
1 191
Баллы
113
Я бы сделал так: взял стандартный сниппет от вики, запустил сниффер, запустил сниппет в проекте, сохранил данные, которые были собраны. То же самое с твоей прогой. Затем осталось только сравнить результаты.
 

Adamastor

Client
Регистрация
15.05.2016
Сообщения
282
Благодарностей
14
Баллы
18
Ну добавь её и ещё посмотри внимательнее все ли заголовки отправлены правильно (сниффер в помощь)
Не помогает перекодировка.

К сожалению я не ЗенноПостером пользуюсь, а своим JS скриптом...
 
Последнее редактирование:

Adamastor

Client
Регистрация
15.05.2016
Сообщения
282
Благодарностей
14
Баллы
18
Сохрани сам файл послушай, 99% дело в нем.
К томуже ты его сначало в переменную читаешь, потом сохраняешь, потом обратно читаешь )
Но сохранить надо и послушать че там вылезло
Файл сохраняется у меня на сервере. Я его скачал и послушал. Читайте пост выше.

На данный момент файл читается с сервера, это сделано для этапа тестирования не более. Как только капча начнет разгадываться это лишнее движение уберется и файл будет читаться напрямую с присланной ссылки.
 

amyboose

Client
Регистрация
21.04.2016
Сообщения
2 312
Благодарностей
1 191
Баллы
113
Не помогает перекодировка.

К сожалению я не ЗенноПостером пользуюсь, а своим JS скриптом...
Попроси кого-то сделать пару запросов к капмонстеру через стандартный сниппет, у меня просто капмонстера нету, иначе бы помог
 

Adamastor

Client
Регистрация
15.05.2016
Сообщения
282
Благодарностей
14
Баллы
18
Надеюсь админы помогут...

Кстати по ссылке в первом посте вы можете скачать не только мой PHP скрипт, но и аудиофайл о котором мы говорим.
 
Последнее редактирование:

amyboose

Client
Регистрация
21.04.2016
Сообщения
2 312
Благодарностей
1 191
Баллы
113
Надеюсь админы помогут...

Кстати по ссылке в первом посте вы можете скачать не только мой PHP скрипт, но и аудиофайл о котором мы говорим.
Если бы там ещё был JS на получение ссылки для рекапчи, я бы вообще его в отдельную папочку закинул :D
А так у меня пока только исходники на PhantomJS для решения рекапчи с изображениями. Знал бы сам этот новый JS язык программирования, сделал бы такую конфетку из неё. Там даже скриншоты можно делать в PhantomJS, как и в зенке, но памяти в разы меньше жрет.
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113

Adamastor

Client
Регистрация
15.05.2016
Сообщения
282
Благодарностей
14
Баллы
18
OK|xxx - где xxx это id задания
нужно по этому заданию просить ответ
https://anti-captcha.com/apidoc

Т.е. после загрузки надо еще, потом ждать ответ и получить его можно спрашивая по ссылке типа
http://anti-captcha.com/res.php?key=12345678901234567890123456789012&action=get&id=xxx
С этим все понятно, доделать не проблема.

Проблема в том что аудиофайл загружается на распознавание КапМонстром, но КапМонстер распознает его неправильно... Почему так? Ведь распознавание должно быть 100%.

КапМонстер пишет ответ 841, хотя на самом деле должен быть 1471728700.

Только что загрузил совсем другую аудиокапчу, ответ КапМонстра дальше 841.

Явно что-то с расширениями или чем-то другим напутано... может в Base64 надо по другому кодировать?
 
Последнее редактирование:

pacman

Client
Регистрация
19.02.2016
Сообщения
17
Благодарностей
10
Баллы
3

разгадывает твой файл, ничего не нужно кодировать , в том виде как есть отправляй 111.mp3
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
Это id задания а не ответ 841
 

Adamastor

Client
Регистрация
15.05.2016
Сообщения
282
Благодарностей
14
Баллы
18

разгадывает твой файл, ничего не нужно кодировать , в том виде как есть отправляй 111.mp3
Весьма интересно получается, сейчас перепроверю и заскриню.

А каким образом Вы отправляли на разгадывание аудиофайл?
 

Вложения

Adamastor

Client
Регистрация
15.05.2016
Сообщения
282
Благодарностей
14
Баллы
18

разгадывает твой файл, ничего не нужно кодировать , в том виде как есть отправляй 111.mp3
Большое спасибо за помощь уважаемый форумчанин.

Оказалось загвоздка в том что CURL POST запрос в строке формирования POST запроса (curl_setopt($curl, CURLOPT_POSTFIELDS, $data);-) должен содержать массив, а не строку:

Ранее $data выглядел так: $data = 'CapMonsterModule=ZennoLab.AudioReCaptcha&method=post&key=sdfsdfsdf&file='.$buffer

Правильно писать вот так в виде массива: $data = array('file' => $buffer, 'CapMonsterModule' => 'ZennoLab.AudioReCaptcha', 'method' => 'post', 'key' => 'sdfsdfsdf');

Спасибо всем за внимание! С уважением, Олег.
 

Gfoblin

Client
Регистрация
30.05.2013
Сообщения
4 596
Благодарностей
1 014
Баллы
113
Большое спасибо за помощь уважаемый форумчанин.

Оказалось загвоздка в том что CURL POST запрос в строке формирования POST запроса (curl_setopt($curl, CURLOPT_POSTFIELDS, $data);-) должен содержать массив, а не строку:

Ранее $data выглядел так: $data = 'CapMonsterModule=ZennoLab.AudioReCaptcha&method=post&key=sdfsdfsdf&file='.$buffer

Правильно писать вот так в виде массива: $data = array('file' => $buffer, 'CapMonsterModule' => 'ZennoLab.AudioReCaptcha', 'method' => 'post', 'key' => 'sdfsdfsdf');

Спасибо всем за внимание! С уважением, Олег.
К стате будет секунда еще так проверь
$data = 'CapMonsterModule=ZennoLab.AudioReCaptcha&method=post&key=sdfsdfsdf&file='.urlencode($buffer);

Данные над энкодить как я помню, в случае массива он сам это делает.
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)