Обсуждение скриптов и вопросов связанных с борьбой с капчами.
========================================================================
Начну пожалуй.
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
В личку только с серьёзными предложениями по заказу скриптов/программ.
Отсутствует
Я говорю, что нужно работникам писать цифры ответов по порядку, так как если будет ответ вида 984, то Рекачпа не верно примет ответ и капча не решится.
а отсортировать цифры самому - разве не проще?, вместо того, чтобы делать решение на рукапче более дорогим - за счет доп условий
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
а отсортировать цифры самому - разве не проще?, вместо того, чтобы делать решение на рукапче более дорогим - за счет доп условий
спасибо большое за код, такое примерно и хотел сделать. По поводу доп. условий и удорожания из за этого сразу не подумал.
получается я прав и нужна последовательность? Просто думал нужно ли с этим разбираться, или нет
Отсутствует
получается я прав и нужна последовательность?
не в курсе, я просто дал вам решение, конкретно, вашей проблемы
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
нужна последовательность
Какая разница, в каком порядке ты тыкнешь по картинкам 1234 или 4321 ?
for(w1=1; w1<70; w1++){ if(iimPlayCode('SET !TIMEOUT_STEP 0\nFRAME F='+w1+'\nTAG POS=1 TYPE=DIV ATTR=CLASS:rc-imageselect-desc-wrapper')>0)break;} iimPlayCode('SET !TIMEOUT_STEP 0\nFRAME F='+w1+'\nTAG POS=1 TYPE=HTML ATTR=DIR:*ltr extract=htm');a=iimGetExtract(); a=a.match(/(,\d){3,4}/); a=a[0].match(/(\d)/g); Number(a[3])>0?z='нужно выполнить несколько заданий '+a[3]:z=''; iimDisplay(a) alert('Формат картинки '+a[1]+'x'+a[2]+'\nнужно выбрать '+a[0]+' картинки'+z);
Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.
Отсутствует
По сортировке видимо я не прав. Скриптом нормально нажимается.
Сейчас бьюсь над другим решением, функцией отправки жалобы на не верно присланную капчу.
По сути всё просто, нужно отправить запрос вида http://rucaptcha.com/res.php?key=YOUR_APIKEY&action=reportbad&id=CAPCHA_ID
Вот как только получить ID капчи через форму для Imacros, ведь через неё приходит уже готовый ответ в текстовом виде. Или тут только свою форму писать, с функцией приёма ID капчи?
Отсутствует
wanksta
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:CHECKBOX FORM=ACTION:getcapcha.php ATTR=NAME:get_id CONTENT=YES'); iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:key CONTENT='+api); iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=INPUT:FILE ATTR=TYPE:file CONTENT='+Path+'captcha9.jpg'); iimPlayCode('SET !TIMEOUT 90\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){ a=iimGetLastExtract().split('|'); s=a[2].replace(/ /g,"<sp>"); iimDisplay(s); break;}} iimPlayCode('WAIT SECONDS=1\nTAB CLOSE'); iimPlayCode('TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=ID:adcopy_response CONTENT='+s+''); iimPlayCode('TAG POS=1 TYPE=BUTTON FORM=NAME:NoFormName ATTR=TXT:Get<SP>a<SP>reward!\nFILEDELETE NAME=C:\\CapNum\\captcha9.jpg'); f=iimPlayCode('SET !TIMEOUT 1\nTAG POS=1 TYPE=DIV ATTR=CLASS:*alert-danger*');if(f>0){ iimPlayCode('TAB OPEN\nTAB T=2'); iimPlayCode('URL GOTO=rucaptcha.com/res.php?key='+api+'&action=reportbad&id='+a[1]+''); iimPlayCode('WAIT SECONDS=1\nTAB CLOSE'); iimPlayCode('WAIT SECONDS=3');}}}
Отредактировано InfSub (15-01-2016 16:30:28)
Отсутствует
PRESIDENT помогите пожалуйста исправить ошибку
/* Переменные содержат данные для регистрации */ var bitcoinadress = 'bitcoinwallet.csv'; // с данными var maxnumer = 60; var nomerLOOP =2; var k,w,f,q,kl; /* конец */ /* Переменные относятся к проксям */ var proxyCSV = 'proxy.csv'; // Файл исключительно с проксями var iphttp = ''; // A var ipsocks = ''; // B var portall = ''; // C var portalls = ''; // D var socksver = ''; // E var ipssl = ''; // var ipftp = ''; // var userA = ''; // F var logAndPassProxy = ''; /* конец */ /* Служебные */ var jsN = "\n"; // перенос строки for (;nomerLOOP<maxnumer;nomerLOOP++){ startProxy(); fauset(); } function fauset() { var zero=iimPlay("CODE:CLEAR\nSET !TIMEOUT_PAGE 25\nURL GOTO=http://goo.gl/HD1BS8\nTAG POS=1 TYPE=DIV ATTR=ID:ip"); // переходим на страничку проверки работоспособности IP if (zero == 1) { iimPlayCode('CLEAR'); iimPlayCode('TAB T=1 \n URL GOTO=http://crypto4free.net'); iimPlayCode('SET !VAR2 "+bitcoin+"'); iimPlayCode('EVENT TYPE=CLICK SELECTOR="HTML>BODY>DIV>DIV:nth-of-type(2)>DIV>FORM>DIV:nth-of-type(2)>DIV>INPUT" BUTTON=0'); iimPlayCode('EVENTS TYPE=KEYPRESS SELECTOR="HTML>BODY>DIV>DIV:nth-of-type(2)>DIV>FORM>DIV:nth-of-type(2)>DIV>INPUT" CHARS="'+bitcoin+'"'); for(w=0; w<20; w++){ f=iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=NAME:adcopy_response');if(f<0){ iimPlayCode('SET !TIMEOUT 30\nTAG POS=1 TYPE=IMG ATTR=SRC:*solvemedia.com/media/reload*.gif'); iimPlayCode('WAIT SECONDS=3');} f=iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=IMG ATTR=ID:adcopy-puzzle-image-image');if(f>0){ iimPlayCode('SET !TIMEOUT 30\nTAG POS=1 TYPE=IMG ATTR=SRC:*solvemedia.com/media/reload*.gif'); iimPlayCode('WAIT SECONDS=3');} else{ for(q=5; q<40; q++){ f=iimPlayCode('SET !TIMEOUT_STEP 0\nFRAME F='+q+'\nTAG POS=1 TYPE=SPAN ATTR=ID:slog');if(f>0){ iimPlayCode('FRAME F='+q+'\nTAG POS=1 TYPE=SPAN ATTR=ID:slog EXTRACT=TXT'); kl=iimGetExtract().replace(/ /g,'<SP>'); iimPlayCode('TAG POS=1 TYPE=INPUT:TEXT FORM=* ATTR=ID:adcopy_response CONTENT='+kl); iimPlayCode('WAIT SECONDS=1'); q=99; w=100; f=iimPlayCode('SET !TIMEOUT 30\nTAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:NoFormName ATTR=*');if(f<0) iimPlayCode('SET !TIMEOUT 30\nTAG POS=1 TYPE=BUTTON FORM=NAME:NoFormName ATTR=TXT:Get*');} else{ f=iimPlayCode('SET !TIMEOUT_STEP 0\nFRAME F='+q+'\nTAG POS=1 TYPE=CANVAS ATTR=ID:slog');if(f>0){ iimPlayCode('SET !TIMEOUT 30\nTAG POS=1 TYPE=IMG ATTR=SRC:*reload*.gif'); iimPlayCode('WAIT SECONDS=1'); break;}}}}} } } function startProxy() { iimPlay("CODE:" + "SET !EXTRACT NULL" + jsN + "SET !DATASOURCE "+bitcoinadress+"" + jsN + "SET !DATASOURCE_LINE "+nomerLOOP+"" + jsN + "SET !DATASOURCE_COLUMNS 1" + jsN + "ADD !EXTRACT {{!COL1}}"); bitcoin=iimGetLastExtract(); iimPlay("CODE:" + "SET !EXTRACT NULL" + jsN + "SET !DATASOURCE "+proxyCSV+"" + jsN + "SET !DATASOURCE_LINE "+nomerLOOP+"" + jsN + "SET !DATASOURCE_COLUMNS 6" + jsN + "ADD !EXTRACT {{!COL1}}" + jsN + "ADD !EXTRACT {{!COL2}}" + jsN + "ADD !EXTRACT {{!COL3}}" + jsN + "ADD !EXTRACT {{!COL4}}" + jsN + "ADD !EXTRACT {{!COL5}}" + jsN + "ADD !EXTRACT {{!COL6}}"); iphttp=iimGetLastExtract(1); ipsocks=iimGetLastExtract(2); portall=iimGetLastExtract(3); portalls=iimGetLastExtract(4); socksver=iimGetLastExtract(5); userA=iimGetLastExtract(6); ipftp=ipssl=iphttp=ipsocks iimPlay("CODE:URL GOTO=about:config\n WAIT SECONDS=2"); var prefs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch); prefs.setIntPref("network.proxy.type", 1); prefs.setBoolPref("network.proxy.share_proxy_settings", false); prefs.setCharPref("network.proxy.http", iphttp); prefs.setIntPref("network.proxy.http_port", portall); prefs.setCharPref("network.proxy.ssl", ipssl); prefs.setIntPref("network.proxy.ssl_port", portall); prefs.setCharPref("network.proxy.ftp",ipftp); prefs.setIntPref("network.proxy.ftp_port",portall); prefs.setCharPref("network.proxy.socks", ipsocks); prefs.setIntPref("network.proxy.socks_port", portalls); prefs.setIntPref("network.proxy.socks_version", socksver); prefs.setCharPref("extensions.proxyauth.authtoken",logAndPassProxy); prefs.setCharPref("general.useragent.override", userA); }
Отредактировано Shejker (16-01-2016 22:26:06)
Отсутствует
Такая капча скриптом не решится, там нужна только ровная буквенная на монохромном фоне,
а на картинке она с линией и цветными пятнами.
и вот тут
Отредактировано Egorushka1974 (17-01-2016 00:58:09)
Отсутствует
ребят помогите с рекапчей еще, вот код
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 bitcoinadress = 'bitcoinwallet.csv'; // var maxnumer = 60; var nomerLOOP =2; var key = ''; // var proxyCSV = 'proxy.csv'; var iphttp = ''; // A var ipsocks = ''; // B var portall = ''; // C var portalls = ''; // D var socksver = ''; // E var ipssl = ''; // var ipftp = ''; // var userA = ''; // F var logAndPassProxy = ''; var jsN = "\n"; for (;nomerLOOP<maxnumer;nomerLOOP++){ startProxy(); fauset(); } function fauset() { var zero=iimPlay("CODE:CLEAR\nSET !TIMEOUT_PAGE 25\nURL GOTO=http://goo.gl/HD1BS8\nTAG POS=1 TYPE=DIV ATTR=ID:ip"); if (zero == 1) { iimPlayCode('SET !EXTRACT_TEST_POPUP NO'); iimPlayCode('SET !ERRORIGNORE YES'); iimPlayCode('SET !ERRORCONTINUE YES'); iimPlayCode('TAB CLOSEALLOTHERS'); iimPlayCode('SET !VAR1 "+key+"'); iimPlayCode('SET !VAR2 "+bitcoin+"'); iimPlayCode('TAB T=1 \n URL GOTO=http://doeza.com/?r=129UcxXaNwzeSeqpTevhv9c3wDjGWDou4F'); iimPlayCode('CODE:WAIT SECONDS=3'); iimPlayCode('TAG POS=1 TYPE=A ATTR=ID:claimhere'); iimPlayCode('CODE:WAIT SECONDS=3'); for(w=1; w<=60; w++){ if(iimPlayCode('SET !TIMEOUT_STEP 0\nFRAME F='+w+'\nTAG POS=2 TYPE=DIV ATTR=TXT:reCAPTCHA')>0){ iimPlayCode('SET !TIMEOUT_STEP 0\nFRAME F='+w+'\nTAG POS=1 TYPE=DIV ATTR=ROLE:presentation&&CLASS:recaptcha-checkbox-checkmark'); iimPlayCode('WAIT SECONDS=5'); iimPlayCode('SET !TIMEOUT_STEP 0\nFRAME F='+w+'\nTAG POS=1 TYPE=DIV ATTR=CLASS:*rc-anchor-checkbox-holder EXTRACT=HTM'); if(iimGetExtract().indexOf('checked="true')<0){ for(w1=w; w1<w+10; w1++){ if(iimPlayCode('SET !TIMEOUT_STEP 0\nFRAME F='+w1+'\nTAG POS=1 TYPE=DIV ATTR=CLASS:rc-imageselect-desc-wrapper')>0){ iimPlayCode('ONDOWNLOAD FOLDER='+Path+' FILE=cap.jpg WAIT=YES\nFRAME F='+w1+'\nTAG 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;}} break;}} iimPlayCode('WAIT SECONDS=1\nTAB CLOSE'); if(Number(c)>0){ for(k=0; k<c.length; k++){ iimPlayCode('SET !TIMEOUT_STEP 0\nFRAME F='+w1+'\nTAG POS='+c[k]+' TYPE=DIV ATTR=CLASS:rc-imageselect-checkbox');} iimPlayCode('SET !TIMEOUT 30\nFRAME F='+w1+'\nEVENT TYPE=CLICK SELECTOR="#recaptcha-anchor>DIV:nth-of-type(5)" BUTTON=0'); iimPlayCode('SET !TIMEOUT 30\nFRAME F='+w1+'\nEVENT TYPE=CLICK SELECTOR="#recaptcha-verify-button" BUTTON=0'); iimPlayCode('WAIT SECONDS=2');}} iimPlayCode('SET !TIMEOUT_STEP 0\nFRAME F='+w+'\nTAG 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=ID:form ATTR=ID:username CONTENT={{!VAR2}}'); iimPlayCode('SET !TIMEOUT 30\nTAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:form ATTR=ID:getbitcoins'); iimPlayCode('WAIT SECONDS=1');} break;}} } } function startProxy() { iimPlay("CODE:" + "SET !EXTRACT NULL" + jsN + "SET !DATASOURCE "+bitcoinadress+"" + jsN + "SET !DATASOURCE_LINE "+nomerLOOP+"" + jsN + "SET !DATASOURCE_COLUMNS 1" + jsN + "ADD !EXTRACT {{!COL1}}"); bitcoin=iimGetLastExtract(); iimPlay("CODE:" + "SET !EXTRACT NULL" + jsN + "SET !DATASOURCE "+proxyCSV+"" + jsN + "SET !DATASOURCE_LINE "+nomerLOOP+"" + jsN + "SET !DATASOURCE_COLUMNS 6" + jsN + "ADD !EXTRACT {{!COL1}}" + jsN + "ADD !EXTRACT {{!COL2}}" + jsN + "ADD !EXTRACT {{!COL3}}" + jsN + "ADD !EXTRACT {{!COL4}}" + jsN + "ADD !EXTRACT {{!COL5}}" + jsN + "ADD !EXTRACT {{!COL6}}"); iphttp=iimGetLastExtract(1); ipsocks=iimGetLastExtract(2); portall=iimGetLastExtract(3); portalls=iimGetLastExtract(4); socksver=iimGetLastExtract(5); userA=iimGetLastExtract(6); ipftp=ipssl=iphttp=ipsocks iimPlay("CODE:URL GOTO=about:config\n WAIT SECONDS=2"); var prefs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch); prefs.setIntPref("network.proxy.type", 1); prefs.setBoolPref("network.proxy.share_proxy_settings", false); prefs.setCharPref("network.proxy.http", iphttp); prefs.setIntPref("network.proxy.http_port", portall); prefs.setCharPref("network.proxy.ssl", ipssl); prefs.setIntPref("network.proxy.ssl_port", portall); prefs.setCharPref("network.proxy.ftp",ipftp); prefs.setIntPref("network.proxy.ftp_port",portall); prefs.setCharPref("network.proxy.socks", ipsocks); prefs.setIntPref("network.proxy.socks_port", portalls); prefs.setIntPref("network.proxy.socks_version", socksver); prefs.setCharPref("extensions.proxyauth.authtoken",logAndPassProxy); prefs.setCharPref("general.useragent.override", userA); }
ReferenceError: Path is not defined, line 62 (Error code: -991)
62 линия вот эта
iimPlayCode('ONDOWNLOAD FOLDER='+Path+' FILE=cap.jpg WAIT=YES\nFRAME F='+w1+'\nTAG POS=1 TYPE=div ATTR=class:"rc-imageselect-payload" CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT');
Отредактировано Shejker (17-01-2016 14:31:07)
Отсутствует
Shejker
добавь в самый верх начнет сохранять
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"); function resize(){ proc.init(file); proc.run(false, args, args.length);}
Отредактировано Koks (17-01-2016 17:03:48)
Отсутствует
Shejker добавь в самый верх начнет сохранять
скрытый текстВыделить кодКод:
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"); function resize(){ proc.init(file); proc.run(false, args, args.length);}
у меня тоже не сохранялось в том коде
спасибо помогло.
У кого есть подправленный код, чтобы если необходимо ввести 2 раза подряд капчу, он ее снова отправлял на разгадывание?
Отсутствует
Выдает эту ошибку ReferenceError: Path is not defined, line 62 (Error code: -991)
Там написано что переменная Path не найдена в линии 62.
Для это в самом верху нужна только эта строка
var Path='C:\\CapNum\\';
Всё остальное не нужно, зачем повторять.
Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.
Отсутствует
Shejker пишет: Выдает эту ошибку ReferenceError: Path is not defined, line 62 (Error code: -991)Там написано что переменная Path не найдена в линии 62.Для это в самом верху нужна только эта строкаvar Path='C:\\CapNum\\';Всё остальное не нужно, зачем повторять.
уже все получилось, спасибо. Не подскажете как повторно отправить капчу на распознание, если это требует рекапча, если можно скиньте пожалуйста код для этого, а то уже не соображаю нифига
Отсутствует
PRESIDENT
Shejker
Я так понимаю нужно типа такой строчки добавь
iimPlayCode('SET !TIMEOUT 30\nFRAME F='+w1+'\nTAG POS=1 TYPE=DIV ATTR=CLASS:rc-imageselect-incorrect-response EXTRACT=TXT'); if(iimGetExtract()!=-2) { break;}
iimPlayCode('ONDOWNLOAD FOLDER='+Path+' FILE=cap.jpg WAIT=YES\nFRAME F='+w1+'\nTAG POS=1 TYPE=div ATTR=class:"rc-imageselect-payload" CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT');
Отредактировано Koks (17-01-2016 23:47:31)
Отсутствует
PRESIDENTShejkerЯ так понимаю нужно типа такой строчки добавьскрытый текстВыделить кодКод:iimPlayCode('SET !TIMEOUT 30\nFRAME F='+w1+'\nTAG POS=1 TYPE=DIV ATTR=CLASS:rc-imageselect-incorrect-response EXTRACT=TXT');
if(iimGetExtract()!=-2) {
break;}чтобы скрипт перекинуло на строкускрытый текстВыделить кодКод:iimPlayCode('ONDOWNLOAD FOLDER='+Path+' FILE=cap.jpg WAIT=YES\nFRAME F='+w1+'\nTAG POS=1 TYPE=div ATTR=class:"rc-imageselect-payload" CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT');
Отредактировано Koks (Вчера 23:47:31)
Отредактировано Shejker (18-01-2016 15:17:45)
Отсутствует
А мож плюнуть и просто идти дальше, если речь идет о сборе с кранов сатошей.
Если в других приложениях и задачах, то наверное имеет смысл повторно разгадывать.
А в боте сборщике, порой за это время еще 3 крана 5-ти минутника например может отработать,
и отбить потерянное на том кране, где попросила повторно разгадать капчу,
Ну это мое ИМХО, так сказть.
Отсутствует
А мож плюнуть и просто идти дальше, если речь идет о сборе с кранов сатошей.Если в других приложениях и задачах, то наверное имеет смысл повторно разгадывать.А в боте сборщике, порой за это время еще 3 крана 5-ти минутника например может отработать,и отбить потерянное на том кране, где попросила повторно разгадать капчу,Ну это мое ИМХО, так сказть.
я бы так и делал, но я например собираю много раз с одного и того же жирненького крана с помощью прокси и часто просит разгадать 2 раз капчу
Отсутствует
Shejker, Egorushka1974
Отредактировано PRESIDENT (19-01-2016 00:03:42)
Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.
Отсутствует
Выловите правильный код на одном сайте,
и потом следующим подсовывайте этот код, естественно подставляя нужные sitekey и api r= и будете очень удивлены
Отсутствует
Всем добрый день.
Все сталкивались, заходишь на кран, а он пустой.
Выкладываю три варианта проверки баланса крана, может их и больше, но я столкнулся пока с такми.
1-й вариант: Простое отображение баланса вроде такого Balance: 781175 satoshi
iimPlayCode('TAB T=1 \n URL GOTO=http://faucetbtc.ru/'); iimPlayCode('TAG POS=1 TYPE=P ATTR=TXT:Balance:* extract=txt'); balance=iimGetExtract().match(/\d+/); //тег разный, но на большинстве сайтов он совпадает, можно записать аймакросом и вставить iimDisplay(balance); if(Number(balance)>10000){ //минимальный баланс, если баланс крана больше, чем это число, то заходим на кран основной код скрипта или вызов макроса с краном }
iimPlayCode('TAB T=1 \n URL GOTO=http://www.satoshidrip.com/'); iimPlayCode('TAG POS=1 TYPE=P ATTR=CLASS:alert<SP>alert-success EXTRACT=TXT'); //тег определяется аналогично первому случаю a=iimGetLastExtract().match(/Balance:.\d+/); balance=String(a).match(/\d+/); iimDisplay(balance); if(Number(balance)>10000){ основной код скрипта или вызов макроса с краном }
iimPlayCode('TAB T=1 \n URL GOTO=http://faucet.mezzabank.com/'); // загрузка сайта iimPlayCode('TAG POS=1 TYPE=H5 ATTR=TXT:Balance:* extract=txt'); balance=iimGetExtract().match(/\d+/g).join(''); iimDisplay(balance); if(Number(balance)>10000){ основной код скрипта или вызов макроса с краном }
Для лайтовых кранов минимальную сумму проверяемого баланса увеличиваем на 10, т.е. до 100000 минимум
Спасибо PRESIDENTу за помощь в поиске решений.
Отредактировано Egorushka1974 (21-01-2016 16:14:29)
Отсутствует
Egorushka1974
Ты глянь первый и третий скрипт похожи.
Собери в один.
if(iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=* ATTR=TXT:Balance:*')>0){ iimPlayCode('TAG POS=1 TYPE=* ATTR=TXT:Balance:* extract=txt'); balance=iimGetExtract().match(/\d+/g).join(''); } else { iimPlayCode('TAG POS=1 TYPE=P ATTR=CLASS:alert<SP>alert-success EXTRACT=TXT'); a=iimGetLastExtract().match(/Balance:.\d+/); balance=String(a).match(/\d+/);} if(Number(balance)>10000){
Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.
Отсутствует