Обсуждение скриптов и вопросов связанных с борьбой с капчами.
========================================================================
Начну пожалуй.
if(iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=script ATTR=src:*recaptcha*')>0){ f1='FRAME NAME=undefined\n'; iimPlayCode('SET !TIMEOUT_STEP 0\n'+f1+'TAG POS=1 TYPE=DIV ATTR=ROLE:presentation'); iimPlayCode('WAIT SECONDS=5'); iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=iframe ATTR=src:*recaptcha/api2/frame?c=* extract=htm'); f2='FRAME '+iimGetExtract().match(/name=".*?"/)+'\n'; iimPlayCode('ONDOWNLOAD FOLDER=C:\\CapNum\\ FILE=cap.jpg WAIT=YES\n'+f2+'TAG POS=1 TYPE=DIV ATTR=class:rc-imageselect-payload CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT'); }
Уменьшение картинки/капчи в размерах.
Тут есть много вариантов, приведу парочку.
Вариант 1
Использование сторонней программы.
Качаем convert.exe и распаковываем в папку куда сохраняются капчи (допустим C:\\CapNum\\).Вот этот код уменьшит и обрежет картинку/капчу cap.jpg в 2 раза (создаст рядом уменьшенную cap2.jpg)Выделить кодКод:
var Cc=Components.classes, Ci=Components.interfaces; var proc=Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess); var file=Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile); var args=['convert', 'C:\\CapNum\\cap.jpg', '-resize', '200x300', '-crop', '194x253+4+4', 'C:\\CapNum\\cap2.jpg']; file.initWithPath("C:\\CapNum\\convert.exe"); proc.init(file); proc.run(false, args, args.length);
Вариант 2
Использование PHP
Качаем вот это и распаковываем в папку C:\\CapNum\\.
Создаём файлик 1.php в папке куда сохраняются капчи C:\\CapNum\\.Скрипт 1.phpВыделить кодКод:
<?php $img=imagecreatefromjpeg("C:/CapNum/cap.jpg"); $des=imagecreatetruecolor(200,300); $col=imagecolorallocate($des, 0x00, 0x00, 0xFF); imagecopyresized($des, $img, 0, 0, 0, 0, 200, 300, 384, 510); imagestring($des, 5, 5, 70, "1", $col); imagestring($des, 5, 73, 70, "2", $col); imagestring($des, 5, 140, 70, "3", $col); imagestring($des, 5, 5, 148, "4", $col); imagestring($des, 5, 73, 148, "5", $col); imagestring($des, 5, 140, 148, "6", $col); imagestring($des, 5, 5, 225, "7", $col); imagestring($des, 5, 73, 225, "8", $col); imagestring($des, 5, 140, 225, "9", $col); imagejpeg($des, 'C:/CapNum/cap2.jpg'); imagedestroy($des); imagedestroy($img); ?>Вот этот код, для запуска 1.php, уменьшит картинку/капчу cap.jpg в 2 раза (создаст рядом уменьшенную cap2.jpg).
И так же пронумерует все варианты ответов (маленькие картинки) от 1 до 9 .Выделить кодКод:
var Cc=Components.classes, Ci=Components.interfaces; var proc=Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess); var file=Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile); var args=['C:\\CapNum\\1.php']; file.initWithPath('C:\\CapNum\\PHP\\PHP.exe'); // <--- Путь до PHP.exe proc.init(file); proc.run(false, args, args.length);
function resize(){ var Cc=Components.classes, Ci=Components.interfaces, c, Path='C:\\CapNum\\'; var proc=Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess); var file=Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile); var args=['convert', 'C:\\CapNum\\cap.jpg', '-resize', '200x300', '-crop', '194x253+4+4', 'C:\\CapNum\\cap2.jpg']; file.initWithPath(Path+"convert.exe"); proc.init(file); proc.run(false, args, args.length);} var key='тут ключик от рукапчи'; var bit='тут биткоин кошель'; f1='FRAME NAME=undefined\n'; if(iimPlayCode('SET !TIMEOUT_STEP 0\n'+f1+'TAG POS=2 TYPE=DIV ATTR=TXT:reCAPTCHA')>0){ iimPlayCode('SET !TIMEOUT_STEP 0\n'+f1+'TAG POS=1 TYPE=DIV ATTR=ROLE:presentation'); iimPlayCode('WAIT SECONDS=5'); iimPlayCode('SET !TIMEOUT_STEP 0\n'+f1+'TAG POS=1 TYPE=DIV ATTR=CLASS:*rc-anchor-checkbox-holder EXTRACT=HTM'); if(iimGetExtract().indexOf('checked="true')<0){ iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=iframe ATTR=src:*recaptcha/api2/frame?c=* extract=htm'); f2='FRAME '+iimGetExtract().match(/name=".*?"/)+'\n'; if(iimPlayCode('SET !TIMEOUT_STEP 0\n'+f2+'TAG POS=1 TYPE=DIV ATTR=CLASS:rc-imageselect-desc-wrapper')>0){ for(a=1; a<9; a++){ if(iimPlayCode('SET !TIMEOUT_STEP 0\n'+f2+'TAG POS=1 TYPE=DIV ATTR=CLASS:rc-image-tile-33')>0) break; else iimPlayCode('SET !TIMEOUT 30\n'+f2+'EVENT TYPE=CLICK SELECTOR="#recaptcha-reload-button" BUTTON=0');} iimPlayCode('ONDOWNLOAD FOLDER='+Path+' FILE=cap.jpg WAIT=YES\n'+f2+'TAG POS=1 TYPE=DIV ATTR=class:rc-imageselect-payload CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT'); iimPlayCode('WAIT SECONDS=2'); resize(); // <--- Уменьшаем картинку iimPlayCode('WAIT SECONDS=2'); iimPlayCode('TAB OPEN\nTAB T=2'); /*** -= Отправляем на распознавание =- ***/ for(sk=0; sk<=9; sk++){ iimPlayCode('SET !TIMEOUT 30\nURL GOTO=imacros2.rucaptcha.com/new/'); iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:key CONTENT='+key); iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=INPUT:FILE ATTR=TYPE:file CONTENT='+Path+'cap2.jpg'); iimPlayCode('SET !TIMEOUT 80\nTAG POS=1 TYPE=INPUT:SUBMIT FORM=ACTION:* ATTR=*'); iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=* ATTR=TXT:* EXTRACT=TXT'); if(iimGetExtract().search(/\d/)!=-1){ c=iimGetExtract().match(/\d+/g).join(''); iimDisplay(c); if(iimGetExtract().indexOf("ERROR")<0) break;}}} iimPlayCode('WAIT SECONDS=1\nTAB CLOSE'); if(Number(c)>0){ for(k=0; k<c.length; k++){ iimPlayCode('SET !TIMEOUT_STEP 0\n'+f2+'TAG POS='+c[k]+' TYPE=DIV ATTR=CLASS:rc-imageselect-checkbox');} iimPlayCode('SET !TIMEOUT 30\n'+f2+'EVENT TYPE=CLICK SELECTOR="HTML>BODY>DIV>DIV>DIV:nth-of-type(3)>DIV:nth-of-type(2)>DIV>DIV:nth-of-type(2)>DIV" BUTTON=0'); //<--- Код нажатия кнопки Продолжить, на некоторых сайтах может отличаться iimPlayCode('SET !TIMEOUT 30\n'+f2+'EVENT TYPE=CLICK SELECTOR="#recaptcha-verify-button" BUTTON=0'); iimPlayCode('WAIT SECONDS=2');}} iimPlayCode('SET !TIMEOUT_STEP 0\n'+f1+'TAG POS=1 TYPE=DIV ATTR=CLASS:*rc-anchor-checkbox-holder EXTRACT=HTM'); if(iimGetExtract().indexOf('checked="true')>0){ iimPlayCode('TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=NAME:* CONTENT='+bit); // <--- Водим биткоин кошель iimPlayCode('SET !TIMEOUT 30\nTAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:NoFormName ATTR=*'); // <--- Нажатие кнопки на самом сайте, тег кнопки может отличаться iimPlayCode('WAIT SECONDS=1');}}
Сначала качаем вот это и распаковываем в папку C:\CapNum\
https://pastebin.mozilla.org/8867297
var Cc=Components.classes, Ci=Components.interfaces,a,b,c,d,e,f=0,refka='1AWqZ3ke9z8eSvZWFPeHTY8a3jmQNWKhSa'; var cok=Cc["@mozilla.org/cookiemanager;1"].getService(Ci.nsICookieManager); var prf=Cc["@mozilla.org/preferences-service;1"].getService(Ci.nsIPrefBranch); var str=Cc["@mozilla.org/supports-string;1"].createInstance(Ci.nsISupportsString); var alt=Cc["@mozilla.org/embedcomp/prompt-service;1"].getService(Ci.nsIPromptService); var t0='SET !TIMEOUT_STEP 0\n', t3='SET !TIMEOUT 30\n'; kap="javascript:document.write('<b><h1>Распознаём капчу !</h1></b>');window.stop();"; Path='C:\\CapNum\\solve\\'; bit='биткоин кошель'; //for(;;){ del_cookis(); iimPlayCode('CLEAR\nTAB CLOSEALLOTHERS\nSET !TIMEOUT 30\nURL GOTO=crypto4free.net?r='+refka); a=iimPlayCode(t0+'TAG POS=1 TYPE=LABEL FORM=NAME:NoFormName ATTR=TXT:*our*address*'); b=iimPlayCode(t0+'TAG POS=1 TYPE=LABEL FORM=NAME:NoFormName ATTR=TXT:Ваш*адрес:'); c=iimPlayCode(t0+'TAG POS=1 TYPE=DIV ATTR=ID:faucet-label'); d=iimPlayCode(t0+'TAG POS=1 TYPE=div ATTR=ID:adcopy-outer'); e=iimPlayCode(t0+'TAG POS=1 TYPE=* ATTR=TXT:*ou*wait*'); if((a>0||b>0||c>0) && d>0 && e<0) solve(); weit(361); //} /***************************************************/ function solve(){ var txt='', w=0; for(q=0; q<2; q++){ if(iimPlayCode(t0+'TAG POS=1 TYPE=* ATTR=TXT:*ou*wait*')>0) break; for(z=0; z<20; z++){ /* Если грязная капча обновляем */ if(iimPlayCode(t0+'TAG POS=1 TYPE=IMG ATTR=ID:adcopy-puzzle-image-image')>0 || iimPlayCode(t0+'TAG POS=1 TYPE=IMG ATTR=SRC:*api.solvemedia.com/papi/media?c=*')>0) reload(); else{ z=100; for(w=0; w<=60; w++){ /* Ищем капчу с тегом SPAN slog (которая ломается без распознавания) или флеш капчу или обычный канвас (капча с ровными буквами) */ if(iimPlayCode(t0+'FRAME F='+w+'\nTAG POS=1 TYPE=SPAN ATTR=ID:slog')>0 || iimPlayCode(t0+'FRAME F='+w+'\nTAG POS=1 TYPE=CANVAS ATTR=ID:*playIcn')>0 || iimPlayCode(t0+'FRAME F='+w+'\nTAG POS=1 TYPE=DIV ATTR=ID:overlay')>0 || iimPlayCode(t0+'FRAME F='+w+'\nTAG POS=1 TYPE=CANVAS ATTR=ID:slog')>0){ /* Если ломаемая капча извлекаем текст и нижний код пропускаем */ if(iimPlayCode(t0+'FRAME F='+w+'\nTAG POS=1 TYPE=SPAN ATTR=ID:slog')>0){ iimPlayCode(t0+'FRAME F='+w+'\nTAG POS=1 TYPE=SPAN ATTR=ID:slog EXTRACT=TXT'); txt=iimGetLastExtract();} /* Если флеш капча, сохраняем на комп и запускаем функцию flesh() и нижний код пропускаем */ else if(iimPlayCode(t0+'FRAME F='+w+'\nTAG POS=1 TYPE=CANVAS ATTR=ID:*playIcn')>0 || iimPlayCode(t0+'FRAME F='+w+'\nTAG POS=1 TYPE=DIV ATTR=ID:overlay')>0){ if(iimPlayCode(t0+'FRAME F='+w+'\nTAG POS=1 TYPE=CANVAS ATTR=ID:*playIcn')>0) weit(10); iimPlayCode('ONDOWNLOAD FOLDER='+Path+' FILE=a.jpg WAIT=YES\nFRAME F='+w+'\nTAG POS=1 TYPE=DIV ATTR=ID:overlay CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT'); iimPlayCode(t0+'TAG POS=1 TYPE=A ATTR=TXT:Return*Page'); weit(1); flesh();} /* Если обычный канвас (капча с ровными буквами), сохраняем на комп и запускаем функцию canvas() */ else if(iimPlayCode(t0+'FRAME F='+w+'\nTAG POS=1 TYPE=CANVAS ATTR=ID:slog')>0){ iimPlayCode('ONDOWNLOAD FOLDER='+Path+' FILE=a.jpg WAIT=YES\nFRAME F='+w+'\nTAG POS=1 TYPE=CANVAS ATTR=ID:*slog CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT');weit(1); canvas();}w=100;}}}} /* Если ничего из верхнего не помогло, грязная капча */ if(w!=100){ iimPlayCode('ONDOWNLOAD FOLDER='+Path+' FILE=a.jpg WAIT=YES\nTAG POS=1 TYPE=IMG ATTR=SRC:http://api.solvemedia.com/papi/media?c=* CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT');weit(1); ... // Тут отправка на сервис распознавания ... } txt=txt.replace(/\W/gi,"").replace(/[0-9]/gi,"").replace(/_/gi,""); if(txt!='' && txt.length>5){ iimPlayCode(t0+'TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=NAME:* CONTENT='+bit); iimPlayCode(t0+'TAG POS=2 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=NAME:* CONTENT='+bit); iimPlayCode(t0+'TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=NAME:adcopy_response CONTENT="'+txt+'"');weit(1); if(iimPlayCode(t3+'TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:NoFormName ATTR=*')<0) iimPlayCode(t3+'TAG POS=1 TYPE=BUTTON FORM=NAME:NoFormName ATTR=TXT:*Get*');} else reload(); if(iimPlayCode(t0+'TAG POS=1 TYPE=DIV ATTR=CLASS:alert*alert*&&TXT:*satoshi*sen*')>0) q=10;}} /***-= Обрабатываем флеш капчу =-***/ function flesh(){ iimDisplay('Обрабатываем флеш капчу'); iimPlayCode('TAB OPEN\nTAB T=2\nURL GOTO="'+kap+'"'); var Cc=Components.classes, Ci=Components.interfaces, args=["C:\\CapNum\\solve\\flesh.vbs"]; var proc=Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess); var file=Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile); file.initWithPath("C:\\Windows\\System32\\wscript.exe"); proc.init(file); proc.run(false, args, args.length); weit(15); iimPlayCode('URL GOTO=file:///'+Path+'otvet.txt\nTAG POS=1 TYPE=* ATTR=TXT:* EXTRACT=TXT'); txt=iimGetExtract();weit(1); iimPlayCode('TAB CLOSE');} /***-= Обрабатываем канвас капчу =-***/ function canvas(){ iimDisplay('Обрабатываем канвас капчу'); iimPlayCode('TAB OPEN\nTAB T=2\nURL GOTO="'+kap+'"'); var Cc=Components.classes, Ci=Components.interfaces, args=["C:\\CapNum\\solve\\canvas.vbs"]; var proc=Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess); var file=Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile); file.initWithPath("C:\\Windows\\System32\\wscript.exe"); proc.init(file); proc.run(false, args, args.length); weit(15); iimPlayCode('URL GOTO=file:///'+Path+'otvet.txt\nTAG POS=1 TYPE=* ATTR=TXT:* EXTRACT=TXT'); txt=iimGetExtract();weit(1); iimPlayCode('TAB CLOSE');} /***-= Удаляем куки =-***/ function del_cookis(){ iimDisplay('Удаляем куки'); var iter=cok.enumerator; while (iter.hasMoreElements()){var cookie=iter.getNext(); if(cookie instanceof Ci.nsICookie){ cok.remove(cookie.host, cookie.name, cookie.path, cookie.blocked);}}} /***-= Обновление капчи =-***/ function reload(){iimPlayCode(t3+'TAG POS=1 TYPE=IMG ATTR=SRC:*solvemedia.com/media/reload*.gif'); weit(1);} /***-= Ожидание =-***/ function weit(s){iimPlayCode('WAIT SECONDS='+s);}
Отредактировано PRESIDENT (19-04-2016 18:30:59)
Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.
Отсутствует
В общем кое что уже получается. В частности капча отправляется в программу xevil и гадается, но вот ответа как бы нету. Есть, но не то. Вместо ответа там выдаётся номер по порядку. Эмулированный, что ли?
Отсутствует
Подскажите, почему ответа нет от программы xevil? Хотя xevil капчу принимает и гадает и разгадывает, но ответ не приходит куда надо. В чём причина, подскажите, кто в курсе дела?
PS вот код моего файла HTML:
<html> <form method=post action="http://127.0.0.1:80/in.php" enctype="multipart/form-data"> key:<input type="text" size="64" name="key"> <input type="file" name="file" size="20"> <input type="hidden" name="method" value="post"> <input type="hidden" name="imacros" value="true"> <input type="submit" value="recognize"> </form> </html>
Отредактировано Odessaman (14-03-2019 22:21:13)
Отсутствует
Odessaman
Так это он тебе ID:8 твоей капчи возвращает
теперь сделай новый ГЕТ запрос с этим ИД и получишь результат.
урл гото по этому адресу
http://127.0.0.1:80/res.php?key=1111&action=get&id=8
и будет тебе счаусте
Отредактировано PRESIDENT (15-03-2019 01:00:33)
Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.
Отсутствует
PRESIDENT по твоему я ip адрес локалхоста от адреса сайта не отличу?
Добавлено 14-03-2019 23:41:33
и указание 80 порта, там совершенно не нужно, браузер и так при обращении по http будет ломиться на 80 порт
Отредактировано InfSub (14-03-2019 23:41:33)
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
PRESIDENT спасибо большое за подсказку! Получилось! Вот оказывается где загвоздка была. а ларчик просто открывался))))
Но тут с этой арифметикой ещё один маленький вопросик возник: оказывается что ответ выдаётся не совсем готовый. Программа его хоть и складывает и результат правильный, но она его не посылает. А посылате только сами цифры и знак сложения. Так собственно вопрос: может вы знаете, что надо в этой программе подкорректировать, чтоб она посылала именно сумму чисел? А то вот что получается:
Есть программка закрывающая демо окошко, но паузу в 15 секунд всё равно ждать нужно.
Буду благодарен, если расскажете поподробней. И ссылочку пожалуйста. Мне эта программка очень надо. А то оно вот такое окно вылазит периодически и ERROR выдаёт. Это совсем не есть гут(
Отредактировано 0dessaman (15-03-2019 00:16:45)
Отсутствует
0dessaman
Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.
Отсутствует
PRESIDENT
Отредактировано 0dessaman (15-03-2019 01:24:26)
Отсутствует
0dessaman
Погугли если не знаешь, что делает replace.
otvet = "10X3="; alert(eval(otvet.replace(/=/g,'').replace(/X/,'+').replace(/x/,'+').replace(/*/,'+')));
Отредактировано PRESIDENT (15-03-2019 14:14:09)
Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.
Отсутствует
Я выложил кусок скрипта и указал, где он у меня работает! Под свои нужды естественно надо перестраивать.
В этот код свою регулярку встройте и усё!
Отсутствует
скрытый текстВыделить кодКод:
otvet = "10X3="; alert(eval(otvet.replace(/=/g,'').replace(/X/,'+').replace(/x/,'+').replace(/*/,'+')));
Спасибо большое за предоставленный код! В принципе это то, что надо было бы. Только что-то он маленько не верный. Ошибку выдаёт в макросе. Да и скобки отображаются серым цветом в блокноте, и вообще всё что после этого кода отображается серым цветом.
Добавлено 15-03-2019 22:09:58
Нашёл я причину почему так: всё из-за звёздочки (*)
Усли её убрать или заменить на Х или Х то всё нормально. А звёздочку js-скрипт в данном случае почему-то не принимает. А ведь этот знак бывает что попадается когда капча гадается. Это ж типа умножение.
Что делать? Как поступить в данном случае с этим умножением?
Добавлено 15-03-2019 22:26:30
Вот бывает что такой ответ программа выдаёт:
Отредактировано Odesaman (15-03-2019 22:41:01)
Отсутствует
Odesaman
otvet = "10*3="; alert(eval(otvet.replace(/=/g,'').replace(/X/,'+').replace(/x/,'+').replace(/\*/,'+')));
И вообще для таких вопросов есть общая тема.
Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.
Отсутствует
Мне нужно разгадывать простую цифровую капчу.
Для этого я думал использовать сервис
Отредактировано in2fire (20-03-2019 20:20:20)
Отсутствует
При долгой работе imacros, мазила начинает виснуть.
Особенно когда работает на быстрой скорости, что-то парсит и т.д.
В начале работы imacros идёт быстро, проходит 1-2 часа и работа замедляется.
Оперативной памяти хватает.
Различные дополнения, плагины отключены.
Что можно сделать в этом случае?
Может в процессе работы скрипта, как-то освобождать память, чистить кеш?
Отредактировано Алим (25-03-2019 09:36:05)
Истина в последней инстанции
Отсутствует
Мне нужно разгадывать простую цифровую капчу.
Если она не сильно "грязная", можно и тессерактом
с применение PHP распознавать, никуда не посылая.
Отсутствует
Приветствую! Скажите, кто в теме, вот такие пазл-капчи с перетаскиванием всего-навсего одного элемента, но на разное расстояние относительно начала картинки, как можно побороть?
Отсутствует
Привет! Шапка в данной теме давно не обновляляся и маленько устарела ибо гуглокапча уже не та, что была 6 лет назад. Вот со старой было проще: загрузил картинку, послан на антигейт и получил ответ, капча разгадана. А сейчас надо несколько раз нажимать на появляющиеся (и тут же исчезающие) изображения. Например: "выберите все гидранты", нажимаешь на один - он исчезает и на его месте другой гидрант. Нажимаешь на него, он исчезает и на его месте уже новая картинка. Потом на другой гидрант так же нажимаешь, на третий и все эти картинки исчезают и новые появляются... Вопрос: как такую капчу отправлять на антигейт? И как вообще с ней работать в контексте данной темы? Каков вообще алгоритм скачивания, загрузки и обработки такой капчи с помощью ява-скрипта для отправки на сервисы распознания капч, типа Антигейт, Рукапча?
Отсутствует
saurbeck
на сколько помню антигейт разгадывает такие капчи по их id, могу правда ошибаться, но советую почитать FAQ самого сервиса
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
вот такие пазл-капчи с перетаскиванием
Я как то задурялся год назад, удалял большую картинку, потом
маленький фрагмент сдергивал на диск, на php его полностью делал прозрачным, делал четкий контур, считал хэш сумму этого элемента, заносил в базу, потом каждому элементу определял количество пикселей для движения по горизонтали, чтобы встал на место, заносил в базу вторым столбцом, всего получилось около 2-х сотен вариантов таких пазликов, далее все работало, пока сайты не начали требовать ввода еще трех ключей которые уже есть в структуре сайта, их нужно было выдернуть из страницы перед распознаванием пазликов, потом GET запросом переслать, перед началом движения фрагмента, я на тот момент пока не дружил с GET запросами, в итоге забросил. А сейчас лениво возвращаться к этому.
Отсутствует
Всем привет. Простите меня за нубство, я блондинко... В общем имею бота, кранов хватает в нем. Рекапчу разгадываю через капча гуру методом отправки data-sitekey. Решила попробовать перевести бота на капмонстр. Установила версию lite. Модуль разгадки рекапчи в личном кабинете подключили. Суть проблемы: сразу при отправке запроса с датасайткеем бот вылетает, хотя капмонстр успевает принять запрос и чего-то там начинает решать. Для разгадки рекапчи у меня в боте имеется унифицированный объект, заточенный под разгадку рекапч с трех сервисов (выбирается опционально). Приведу кусок кода на котором происходит вылет бота с ошибкой e is undefined
var params = "key=" + ТУТ ВСТАВЛЯЕТСЯ API КЛЮЧ + "&method=userrecaptcha&googlekey=" + ТУТ ВСТАВЛЯЕТСЯ DATASITEKEY + "&pageurl=" + ТУТ ВСТАВЛЯЕТСЯ URI КРАНА+ "&json=true&header_acao=1"; var XMLHttpRequest = Components.Constructor("@mozilla.org/xmlextras/xmlhttprequest;1"); var xhr = new XMLHttpRequest(); xhr.open('POST', "http://" + anticaptchingHosts[anticaptchingServer] + "/in.php", false); xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8'); xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); xhr.timeout = 60000; //ДАЛЕЕ ИДЕТ КОНСТРУКЦИЯ TRY CATCH, ОБЪЕКТ OUT ИСПОЛЬЗУЕТСЯ ДЛЯ ВЫТАСКИВАНИЯ РЕЗУЛЬТАТА ЗАПРОСА try { xhr.send(params); if (xhr.status != 200) { out = { isSolved: false, hasError: true, errorText: xhr.statusText, answer: '' }; } else { var res = JSON.parse(xhr.responseText); if (res.status == 1) { //CHECK SOLUTION ЭТО МЕТОД ОБРАЩАЮЩИЙСЯ ЗА РЕЗУЛЬТАТОМ РАЗГАДКИ КАПЧИ checkSolution(res.request, anticaptchingKeys); } else { out = { isSolved: false, hasError: true, errorText: xhr.statusText, answer: '' }; } } } catch (e) { //ВОТ НА ЭТОМ CATCH БОТ И ВЫЛЕТАЕТ С ОШИБКОЙ e is undefined out = { isSolved: false, hasError: true, errorText: e.name, answer: '' }; }
Отсутствует
olushka84
Попробуйте заменить e.name в строке errorText: e.name, на пустую строку или иной текст, есть предложение, что ругается на переменную "е" именно в этой строке
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует