borisenko1
Client
- Регистрация
- 19.02.2016
- Сообщения
- 17
- Реакции
- 0
- Баллы
- 1
Ip роутера. а с него пробросить на локальный IP где Капмонстр работаета в веб форме через которую буду отправлять с другого компьютера какой ip указывать?
Скрипт после отправки каптчи на распознавание ожидает получить ответ вида "OK|153" где 153 - ID каптчи, у вас же после отправки каптчи на распознавание этот этап пропущен и появляется сразу окончательный ответ. Насколько знаю такой подход реализован начиная с версии 2.5.8. А в более ранних версиях это настраивается.почему-то вместо ответа вписывается другое значение - undefined Подскажите, где может быть ошибка?
Скрипт после отправки каптчи на распознавание ожидает получить ответ вида "OK|153" где 153 - ID каптчи, у вас же после отправки каптчи на распознавание этот этап пропущен и появляется сразу окончательный ответ. Насколько знаю такой подход реализован начиная с версии 2.5.8. А в более ранних версиях это настраивается.
var zapros=0;
var t1=0;
var n = '\n';
var standartcode = 'SET !EXTRACT_TEST_POPUP NO \n SET !ERRORIGNORE YES \n';
var SaveTo="C:\\www\\"; //Путь для сохранения файла
var FileName='AudioReCaptcha.mp3'; //Имя файла
var Forma='file:///C:/www/imacros.html'; //Путь к форме imacros
var ip='127.0.0.3'; //ip вашего сервера CapMonster2
var key=''; //ключ (если надо) для вашего сервера CapMonster2
iimPlayCode('SET !TIMEOUT_STEP 0\nURL GOTO=http://forbitcoin.win');
iimPlayCode('TAG POS=2 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=NAME:* CONTENT=1J2HHS2z7FjFjqdry4HjaxQW8arJSa19wU');
function CloseAllOthers() {
var code =standartcode;
code += 'SET !TIMEOUT_STEP 0'+n;
code += 'ONDIALOG POS=1 BUTTON=OK CONTENT='+n;
code += 'TAB T=1'+n;
code += 'TAB T=0'+n;
code += 'TAB T=-1'+n;
code += 'TAB T=-2'+n;
code += 'TAB T=-3'+n;
code += 'TAB T=-4'+n;
code += 'TAB CLOSEALLOTHERS'+n;
iimPlayCode(code);
}
function PostCapMonster() {
var code = standartcode;
code+='TAB OPEN'+n;
code+='TAB T=2'+n;
code+='URL GOTO='+Forma+n;
code+='SET !TIMEOUT_STEP 0'+n;
code+= 'WAIT SECONDS=1'+n;
iimPlayCode(code);
var form0 = window.document.forms[0];
form0.action='http://'+ip+'/in.php'
var code = standartcode;
code+='TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:key CONTENT='+key+n;
code+='TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:CapMonsterModule CONTENT=ZennoLab.AudioReCaptcha'+n;
code+='TAG POS=1 TYPE=INPUT:FILE ATTR=TYPE:file CONTENT='+SaveTo+FileName+n;
code+='TAG POS=1 TYPE=INPUT:SUBMIT FORM=ACTION:* ATTR=*'+n;
code+='TAG POS=1 TYPE=* ATTR=TXT:* EXTRACT=TXT'+n;
iimPlayCode(code);
var capchaID=iimGetExtract(1);
if (capchaID.indexOf('OK')!==-1){
capchaID=capchaID.substring(3,capchaID.length);
var capchaAnsver=SendPovtor(capchaID);
} else {
iimDisplay(capchaID);
}
return capchaAnsver;
}
function SendPovtor(capchaID){
var wait=10
var code = standartcode;
code+= 'WAIT SECONDS='+wait+n;
code+='URL GOTO=http://'+ip+'/res.php?action=get&id='+capchaID+n;
code+='TAG POS=1 TYPE=* ATTR=TXT:* EXTRACT=TXT'+n;
iimPlayCode(code);
var capchaAnsver=iimGetExtract(1);
iimDisplay(capchaAnsver);
if (capchaAnsver.indexOf('OK')!==-1){
capchaAnsver=capchaAnsver.substring(3,capchaAnsver.length);
zapros=0;
return capchaAnsver;
} else if (capchaAnsver.indexOf('CAPCHA_NOT_READY')!==-1) {
iimDisplay(capchaAnsver);
if (zapros<=5) {
zapros=zapros+1;
capchaAnsver=SendPovtor(capchaID);
} else if (5<zapros) {
zapros=0;
}
}
return capchaAnsver;
}
function SaveCapcha () {
try{
var frame0 = window.document.querySelector('iframe[src^="https://www.google.com/recaptcha/api2/anchor?k="]');
frame0.id = 'rc0';
frame0.name = 'rc0';
}catch(e){
var grecaptcha = window.document.getElementsByClassName('g-recaptcha')[0];
var frame0 = grecaptcha.childNodes[0].childNodes[0].childNodes[0];
frame0.id = 'rc0';
frame0.name = 'rc0';
}
var code = standartcode;
code += 'SET !TIMEOUT_STEP 0' + n;
code += 'FRAME NAME="rc0"' + n;
code += 'TAG POS=1 TYPE=SPAN ATTR=CLASS:rc-anchor-error-msg EXTRACT=txt' + n;
iimPlayCode(code);
if (iimGetExtract(1)==null){
var code = standartcode;
code += 'WAIT SECONDS=1' + n;
code += 'FRAME NAME="rc0"' + n;
code += 'WAIT SECONDS=1' + n;
code += 'TAG POS=1 TYPE=DIV ATTR=ROLE:presentation' + n;
code += 'WAIT SECONDS=3' + n;
code += 'TAG POS=1 TYPE=DIV ATTR=CLASS:*rc-anchor-checkbox-holder EXTRACT=HTM' + n;
iimPlayCode(code);
if (iimGetExtract(1).indexOf('checked="true')==-1){
try {
var frame1 = window.document.getElementsByTagName('div')[window.document.getElementsByTagName('div').length - 1].childNodes[0];
frame1.id = 'rc1';
frame1.name = 'rc1';
} catch (e){
var frame1 = window.document.querySelector('iframe[src^="https://www.google.com/recaptcha/api2/frame?c="]');
frame1.id = 'rc1';
frame1.name = 'rc1';
}
var code = standartcode;
code += 'SET !TIMEOUT_STEP 0' + n;
code += 'FRAME NAME="rc1"' + n;
code += 'EVENT TYPE=CLICK SELECTOR="#recaptcha-audio-button" BUTTON=0' + n;
code += 'WAIT SECONDS=2' + n;
code += 'TAG POS=1 TYPE=DIV ATTR=CLASS:*rc-text-instructions EXTRACT=HTM' + n;
iimPlayCode(code);
if (iimGetExtract(1).indexOf('rc-text-instructions')!==-1){
var code = standartcode;
code += 'SET !TIMEOUT_STEP 0' + n;
code += 'FRAME NAME="rc1"' + n;
code += 'EVENT TYPE=CLICK SELECTOR="#recaptcha-reload-button" BUTTON=0' + n;
code += 'WAIT SECONDS=3' + n;
iimPlayCode(code);
SaveCapcha ();
return
}
var code = standartcode;
code += 'FRAME NAME="rc1"' + n;
code += 'ONDOWNLOAD FOLDER='+SaveTo+' FILE='+FileName+' WAIT=YES' + n;
code+= 'TAG POS=1 TYPE=A ATTR=CLASS:rc-audiochallenge-download-link CONTENT=EVENT:SAVETARGETAS'+n;
code += 'WAIT SECONDS=3' + n;
iimPlayCode(code);
var otvet=PostCapMonster();
CloseAllOthers();
var code = standartcode;
code += 'SET !TIMEOUT_STEP 0' + n;
code += 'FRAME NAME="rc1"' + n;
code += 'TAG POS=1 TYPE=INPUT ATTR=ID:audio-response CONTENT='+otvet+ n;
code += 'WAIT SECONDS=1' + n;
code += 'EVENT TYPE=CLICK SELECTOR="#recaptcha-verify-button" BUTTON=0' + n;
code += 'WAIT SECONDS=3' + n;
code += 'FRAME NAME="rc0"' + n;
code += 'TAG POS=1 TYPE=DIV ATTR=CLASS:*rc-anchor-checkbox-holder EXTRACT=HTM' + n;
iimPlayCode(code);
var checkcapcha=iimGetExtract(1);
if (checkcapcha.indexOf('checked="true')==-1){
t1=t1+1;
if (t1<=2){
iimDisplay('Капча разгадана неправильно');
var code = standartcode;
code += 'SET !TIMEOUT_STEP 0' + n;
code += 'FRAME NAME="rc1"' + n;
code += 'EVENT TYPE=CLICK SELECTOR="#recaptcha-reload-button" BUTTON=0' + n;
code += 'WAIT SECONDS=3' + n;
iimPlayCode(code);
SaveCapcha ();
return
} else {t1=0;}
} else {
iimDisplay('Капча разгадана правильно');
}
} else {
iimDisplay('Гугл сразу согласился что я не робот');
}
} else {}
return
}
SaveCapcha ()
<html><head></head>
<form method="post" action="http://127.0.0.3/in.php" enctype="multipart/form-data">
key:<input size="64" name="key" type="text">
<input name="file" size="20" type="file">
<input name="method" value="post" type="hidden">
<input name="imacros" value="true" type="hidden">
<input value="recognize" type="submit">
<input type="hidden" name="FullAnswer" value="true">
<br><br><br><br><br>
<b>Additional fields:</b><br>
<input name="is_russian" value="1" type="checkbox"> Cyrillic alphabet<br>
<input name="language" value="2" type="checkbox"> In english<br>
<input name="phrase" value="1" type="checkbox"> 2 words<br>
<input name="regsense" value="1" type="checkbox"> cAse sensitive<br>
<input name="numeric" value="1" type="checkbox"> numeric captcha<br>
<input name="calc" value="1" type="checkbox"> mathematical operation<br>
<input name="min_len" value="0" size="5" type="text"> minimum length<br>
<input name="max_len" value="0" size="5" type="text"> maximum length<br>
<input name="CapMonsterModule" size="15" type="text"> capmonster module<br>
<input name="Task" size="100" type="text"> task<br>
<br><br>
<b>Add additional flags in your code:</b><br>
<i>
TAG POS=1 TYPE=INPUT:CHECKBOX FORM=ACTION:http://127.0.0.3/in.php ATTR=NAME:regsense CONTENT=1
</i>
<br><br>for min_len / max_len:<br><br>
<i>
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:http://127.0.0.3/in.php ATTR=NAME:max_len CONTENT=15
</i>
</form>
</html>
Собсно сам код. Практически ничего не изменял.
Скрипт после отправки каптчи на распознавание ожидает получить ответ вида "OK|153" где 153 - ID каптчи,
iimPlayCode(code);
var capchaID=iimGetExtract(1);
if (capchaID.indexOf('OK')!==-1){
capchaID=capchaID.substring(3,capchaID.length);
var capchaAnsver=SendPovtor(capchaID);
} else {
iimDisplay(capchaID);
}
return capchaAnsver;
}
function SendPovtor(capchaID){
var wait=10
var code = standartcode;
code+= 'WAIT SECONDS='+wait+n;
code+='URL GOTO=http://'+ip+'/res.php?action=get&id='+capchaID+n;
code+='TAG POS=1 TYPE=* ATTR=TXT:* EXTRACT=TXT'+n;
iimPlayCode(code);
var capchaAnsver=iimGetExtract(1);
iimDisplay(capchaAnsver);
if (capchaAnsver.indexOf('OK')!==-1){
capchaAnsver=capchaAnsver.substring(3,capchaAnsver.length);
Получилось разобраться?
Что-то не хочется на старую версию CM переходить
В самом коде выделены 2 функции: PostCapMonster - отправка каптчи на распознавание и SendPovtor - запрос ответа от камонстра., при этом SendPovtor использует ID каптчи полученный в функции PostCapMonster. ID каптчи появлялось на странице после отправки каптчи на распознавание и всегда было вида "OK|153". Так было раньше.Скрипт после отправки каптчи на распознавание ожидает получить ответ вида "OK|153" где 153 - ID каптчи, у вас же после отправки каптчи на распознавание этот этап пропущен и появляется сразу окончательный ответ
function PostCapMonster() {
var code = standartcode;
code+='TAB OPEN'+n;
code+='TAB T=2'+n;
code+='URL GOTO='+Forma+n;
code+='SET !TIMEOUT_STEP 0'+n;
code+= 'WAIT SECONDS=1'+n;
iimPlayCode(code);
var form0 = window.document.forms[0];
form0.action='http://'+ip+'/in.php'
var code = standartcode;
code+='TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:key CONTENT='+key+n;
code+='TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:CapMonsterModule CONTENT=ZennoLab.AudioReCaptcha'+n;
code+='TAG POS=1 TYPE=INPUT:FILE ATTR=TYPE:file CONTENT='+SaveTo+FileName+n;
code+='TAG POS=1 TYPE=INPUT:SUBMIT FORM=ACTION:* ATTR=*'+n;
code+='TAG POS=1 TYPE=* ATTR=TXT:* EXTRACT=TXT'+n;
iimPlayCode(code);
var capchaAnsver=iimGetExtract(1);
return capchaAnsver;
}
Пара советов тем, кто пытается использовать эти 2 продукта:
1. Изучите синтаксис и команды imacros самостоятельно - не имея представления о том, что, где и как работает, при малейшем изменении страницы или каптчи ваши готовые (взятые с форума) скрипты становятся просто бесполезны.
2. Изучая imacros обязательно!!! сразу учитесь использовать javascript - только он позволит сделать ваши скрипты динамичными и подходящими к любым условиям.
Вообще-то куда копать было написано выше
Повторюсь
var zapros=0;
var t1=0;
var n = '\n';
var standartcode = 'SET !EXTRACT_TEST_POPUP NO \n SET !ERRORIGNORE YES \n';
var SaveTo="C:\\www\\"; //Путь для сохранения файла
var FileName='AudioReCaptcha.mp3'; //Имя файла
var Forma='file:///C:/www/imacros.html'; //Путь к форме imacros
var ip='192.168.101.201'; //ip вашего сервера CapMonster2
var key=' '; //ключ (если надо) для вашего сервера CapMonster2
function CloseAllOthers() {
var code =standartcode;
code += 'SET !TIMEOUT_STEP 0'+n;
code += 'ONDIALOG POS=1 BUTTON=OK CONTENT='+n;
code += 'TAB T=1'+n;
code += 'TAB T=0'+n;
code += 'TAB T=-1'+n;
code += 'TAB T=-2'+n;
code += 'TAB T=-3'+n;
code += 'TAB T=-4'+n;
code += 'TAB CLOSEALLOTHERS'+n;
iimPlayCode(code);
}
function PostCapMonster() {
var code = standartcode;
code+='TAB OPEN'+n;
code+='TAB T=2'+n;
code+='URL GOTO='+Forma+n;
code+='SET !TIMEOUT_STEP 0'+n;
code+= 'WAIT SECONDS=1'+n;
iimPlayCode(code);
var form0 = window.document.forms[0];
form0.action='http://'+ip+'/in.php'
var code = standartcode;
code+='TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:key CONTENT='+key+n;
code+='TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:CapMonsterModule CONTENT=ZennoLab.AudioReCaptcha'+n;
code+='TAG POS=1 TYPE=INPUT:FILE ATTR=TYPE:file CONTENT='+SaveTo+FileName+n;
code+='TAG POS=1 TYPE=INPUT:SUBMIT FORM=ACTION:* ATTR=*'+n;
code+='TAG POS=1 TYPE=* ATTR=TXT:* EXTRACT=TXT'+n;
iimPlayCode(code);
var capchaID=iimGetExtract(1);
return capchaAnsver;
}
function SaveCapcha () {
try{
var frame0 = window.document.querySelector('iframe[src^="https://www.google.com/recaptcha/api2/anchor?k="]');
frame0.id = 'rc0';
frame0.name = 'rc0';
}catch(e){
var grecaptcha = window.document.getElementsByClassName('g-recaptcha')[0];
var frame0 = grecaptcha.childNodes[0].childNodes[0].childNodes[0];
frame0.id = 'rc0';
frame0.name = 'rc0';
}
var code = standartcode;
code += 'SET !TIMEOUT_STEP 0' + n;
code += 'FRAME NAME="rc0"' + n;
code += 'TAG POS=1 TYPE=SPAN ATTR=CLASS:rc-anchor-error-msg EXTRACT=txt' + n;
iimPlayCode(code);
if (iimGetExtract(1)==null){
var code = standartcode;
code += 'WAIT SECONDS=1' + n;
code += 'FRAME NAME="rc0"' + n;
code += 'WAIT SECONDS=1' + n;
code += 'TAG POS=1 TYPE=DIV ATTR=ROLE:presentation' + n;
code += 'WAIT SECONDS=3' + n;
code += 'TAG POS=1 TYPE=DIV ATTR=CLASS:*rc-anchor-checkbox-holder EXTRACT=HTM' + n;
iimPlayCode(code);
if (iimGetExtract(1).indexOf('checked="true')==-1){
try {
var frame1 = window.document.getElementsByTagName('div')[window.document.getElementsByTagName('div').length - 1].childNodes[0];
frame1.id = 'rc1';
frame1.name = 'rc1';
} catch (e){
var frame1 = window.document.querySelector('iframe[src^="https://www.google.com/recaptcha/api2/frame?c="]');
frame1.id = 'rc1';
frame1.name = 'rc1';
}
var code = standartcode;
code += 'SET !TIMEOUT_STEP 0' + n;
code += 'FRAME NAME="rc1"' + n;
code += 'EVENT TYPE=CLICK SELECTOR="#recaptcha-audio-button" BUTTON=0' + n;
code += 'WAIT SECONDS=2' + n;
code += 'TAG POS=1 TYPE=DIV ATTR=CLASS:*rc-text-instructions EXTRACT=HTM' + n;
iimPlayCode(code);
if (iimGetExtract(1).indexOf('rc-text-instructions')!==-1){
var code = standartcode;
code += 'SET !TIMEOUT_STEP 0' + n;
code += 'FRAME NAME="rc1"' + n;
code += 'EVENT TYPE=CLICK SELECTOR="#recaptcha-reload-button" BUTTON=0' + n;
code += 'WAIT SECONDS=3' + n;
iimPlayCode(code);
SaveCapcha ();
return
}
var code = standartcode;
code += 'FRAME NAME="rc1"' + n;
code += 'ONDOWNLOAD FOLDER='+SaveTo+' FILE='+FileName+' WAIT=YES' + n;
code+= 'TAG POS=1 TYPE=A ATTR=CLASS:rc-audiochallenge-download-link CONTENT=EVENT:SAVETARGETAS'+n;
code += 'WAIT SECONDS=3' + n;
iimPlayCode(code);
var otvet=PostCapMonster();
CloseAllOthers();
var code = standartcode;
code += 'SET !TIMEOUT_STEP 0' + n;
code += 'FRAME NAME="rc1"' + n;
code += 'TAG POS=1 TYPE=INPUT ATTR=ID:audio-response CONTENT='+otvet+ n;
code += 'WAIT SECONDS=1' + n;
code += 'EVENT TYPE=CLICK SELECTOR="#recaptcha-verify-button" BUTTON=0' + n;
code += 'WAIT SECONDS=3' + n;
code += 'FRAME NAME="rc0"' + n;
code += 'TAG POS=1 TYPE=DIV ATTR=CLASS:*rc-anchor-checkbox-holder EXTRACT=HTM' + n;
iimPlayCode(code);
var checkcapcha=iimGetExtract(1);
if (checkcapcha.indexOf('checked="true')==-1){
t1=t1+1;
if (t1<=2){
iimDisplay('Капча разгадана неправильно');
var code = standartcode;
code += 'SET !TIMEOUT_STEP 0' + n;
code += 'FRAME NAME="rc1"' + n;
code += 'EVENT TYPE=CLICK SELECTOR="#recaptcha-reload-button" BUTTON=0' + n;
code += 'WAIT SECONDS=3' + n;
iimPlayCode(code);
SaveCapcha ();
return
} else {t1=0;}
} else {
iimDisplay('Капча разгадана правильно');
}
} else {
iimDisplay('Гугл сразу согласился что я не робот');
}
} else {}
return
}
SaveCapcha ()
Готового нет. Я сейчас рекаптчей не занимаюсь. Знаю только что выдергивать там надо и вопрос и все варианты ответаУ вас есть готовое решение?
Тоже очень интересно как можно через iMacros использовать модуль ReCaptchaAssociation? Ато модуль есть, а использовать нельзя.Derrini! В обновлении появился модуль по решению ассоциаций (аудио рекапча). Тяму не хватает как его привязать к коду. Если не ошибаюсь надо выдергивать значение SPAN из кода страницы. У вас есть готовое решение?
Можно. Отправляете на распознавание вопрос и все варианты ответа в формате "вопрос:ответ1;ответ2;ответ3" и используете модуль ReCaptchaAssociationАто модуль есть, а использовать нельзя.
Как можно загрузить данный формат в форму imacros.html ? Текстовым файлом отправить или еще как-то можно?вопрос и все варианты ответа в формате "вопрос:ответ1;ответ2;ответ3"
В форме есть поле task в него и вставлять строку примерно так:Как можно загрузить данный формат в форму imacros.html ? Текстовым файлом отправить или еще как-то можно?
А что в самом капмонстре пишет?Без imacros, вручную, ввел в данную форму вопрос и все ответы через ; взятые с ReCaptcha, выдает ERROR.


