Обсуждение скриптов и вопросов связанных с борьбой с капчами.
========================================================================
Начну пожалуй.
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
В личку только с серьёзными предложениями по заказу скриптов/программ.
Отсутствует
shura_hin
iimPlayCode('SET !TIMEOUT_STEP 0\nTAB T=1\nTAG POS=1 TYPE=INPUT:TEXT FORM=ID:fcaptcha ATTR=ID:adcopy_response CONTENT="'+s[2]+'"'); или s=s[2].replace(/ /g,"<sp>"); iimPlayCode('SET !TIMEOUT_STEP 0\nTAB T=1\nTAG POS=1 TYPE=INPUT:TEXT FORM=ID:fcaptcha ATTR=ID:adcopy_response CONTENT='+s+'');
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: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+'freebitco.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); if(iimGetExtract().indexOf("ERROR")<0) break;}} iimPlayCode('WAIT SECONDS=1\nTAB CLOSE'); iimPlayCode('TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:recaptcha_response_field CONTENT='+s+'');
Отредактировано Koks (03-03-2016 15:54:37)
Отсутствует
хочу рассказать о своем продвижении
работают 4 мозилы
IP Канады и мобильный user-agent
Random Agent Spoofer
/***-= Обрабатываем флеш капчу =-***/ function abbyy(){ iimDisplay('Обрабатываем флеш капчу'); iimPlayCode('TAB OPEN\nTAB T=2\nURL GOTO="'+kap+'"'); iimDisplay('OCR'); weit(65); iimPlayCode('SET !TIMEOUT 90\nURL GOTO=file:///'+Path+'captcha.txt\nTAG POS=1 TYPE=* ATTR=TXT:* EXTRACT=TXT'); a=iimGetLastExtract(); txt=a.split(/:|=/)[1]; iimPlayCode('TAB CLOSE'); iimPlayCode('FILEDELETE NAME='+Path+'a.png\nFILEDELETE NAME='+Path+'captcha.txt'); iimPlayCode(t0+'TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=NAME:address CONTENT='+bit); iimPlayCode(t0+'TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=NAME:adcopy_response CONTENT="'+txt+'"'); weit(1); iimPlayCode(t0+'TAG POS=1 TYPE=INPUT:TEXT FORM=ID:XXS3dd8HEe ATTR=ID:adcopy_response CONTENT="'+txt+'"'); weit(1); iimPlayCode(t0+'TAG POS=1 TYPE=INPUT:TEXT FORM=ID:furmularz ATTR=ID:adcopy_response CONTENT="'+txt+'"'); weit(1); iimPlayCode(t3+'TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:NoFormName ATTR=*'); weit(1); iimPlayCode(t3+'TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:NoFormName ATTR=*'); weit(1); iimPlayCode(t3+'TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:XXS3dd8HEe ATTR=ID:FDFBBVVJIII7HH'); iimPlayCode(t3+'TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:XXS3dd8HEe ATTR=ID:FDFBBVVJIII7HH'); iimPlayCode(t3+'TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:furmularz ATTR=*'); weit(1); iimPlayCode(t3+'TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:furmularz ATTR=*'); weit(1); iimPlayCode(t3+'TAG POS=1 TYPE=BUTTON FORM=NAME:NoFormName ATTR=TXT:Get*a*reward!'); weit(1); iimPlayCode(t3+'TAG POS=1 TYPE=BUTTON FORM=NAME:NoFormName ATTR=TXT:Get*a*reward!'); weit(1);}
//Если ничего из верхнего не помогло, грязная капча if(w==100 && txt.length>5){ //if(w!=100){ /* Если PROGRESSIVE (капча с ровными буквами), сохраняем на комп и запускаем функцию abbyy() */ iimPlayCode(t0+'TAG POS=1 TYPE=AREA ATTR=SHAPE:rect&&COORDS:0,0,300,150&&ALT:&&TITLE:&&HREF:#'); weit(10); if(iimPlayCode('ONDOWNLOAD FOLDER='+Path+' FILE=a.png WAIT=YES\nTAG POS=1 TYPE=DIV ATTR=ID:adcopy-puzzle-image CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT')>0){ weit(1); abbyy();} if(iimPlayCode('ONDOWNLOAD FOLDER='+Path+' FILE=a.png WAIT=YES\nTAG POS=1 TYPE=AREA ATTR=HREF:http://pixel.solvemedia.com/c/* CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT')>0){ weit(1); abbyy();} if(iimPlayCode('ONDOWNLOAD FOLDER='+Path+' FILE=a.png WAIT=YES\nTAG POS=1 TYPE=AREA ATTR=HREF:http://api.solvemedia.com/papi/action?c=* CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT')>0){ weit(1); abbyy();}
правила форума iMacros
1. Не рекомендуется:
1.6 Изменять имена JS и iMacros функций, без изменения функционала данных функций.
отредактировано
замечание, правила, пункт 2.22
InfSub
Отредактировано Koks (03-03-2016 16:21:23)
Отсутствует
function solve(){ ... for(w=0; w<=60; w++){ //<--- Ищем фрейм /* Ищем капчу с тегом SPAN slog (которая ломается без распознавания) или флеш капчу или обычный канвас (капча с ровными буквами) */ if((...SPAN slog...)>0 || (...флеш...)>0 || (...капча с ровными буквами...)>0){ ... Тут запуск распознавалки . Для каждой капчи мы делали свой пхп файл, для обработки капчи и запуска тессеракта. ... }w=100;} <--- Выполняет двойную работу, разу останавливаем цикл перебора фреймов и делает метку что какая то из наших капч сработала/найдена /* Если ничего из верхнего не помогло, грязная капча */ if(w!=100){ <---Обратите внимание если 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'); // Тут отправка на сервис распознавания }
И тут у некоторых возникают проблема:
если распознавалка не смогла распознать кавнас (капчу с ровными буквами)
-----------------------------------------------------------------
Можна сделать как то так
function solve(){ var txt='', w=0; ... for(w=0; w<=60; w++){ //<--- Ищем фрейм /* Ищем капчу с тегом SPAN slog (которая ломается без распознавания) или флеш капчу или обычный канвас (капча с ровными буквами) */ if((...SPAN slog...)>0 || (...флеш...)>0 || (...капча с ровными буквами...)>0){ ... запуск распознавалки. ... }w=100;} /***********************************************************/ txt=txt.replace(/\W/gi,"").replace(/[0-9]/gi,"").replace(/_/gi,""); if(w==100 && txt.length>5){ <--- Если сработало что то из верхнего но распознавалка не справилась, число символов в ответе меньше 5 то отправляем эту капчу на сервис распознавания. Капчу заново на комп сохранять не нужно, она у вас уже есть уже сохранена. } /***********************************************************/ /* Если ничего из верхнего не помогло, грязная капча */ if(w!=100){ ... } txt=txt.replace(/\W/gi,"").replace(/[0-9]/gi,"").replace(/_/gi,""); if(txt!='' && txt.length>5){ Ну и дальше по тексту
Отредактировано PRESIDENT (03-03-2016 19:27:05)
Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.
Отсутствует
Koks Благодарю! Все заработало с вариантом
InfSub
Отредактировано shura_hin (03-03-2016 22:15:41)
Отсутствует
Здрасте всем. Помогите разобраться как сделать чтобы скрипт после 5 ошибок шел дальше вводя любое значение в поле для капчи. При обычном пропуске выдает ошибку пустого значения для ввода.
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='+key); iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=INPUT:FILE ATTR=TYPE:file CONTENT='+kash+'kash.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); if(iimGetExtract().indexOf("ERROR")<0) break;}} iimPlayCode('WAIT SECONDS=1\nTAB CLOSE'); iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=ID:adcopy_response CONTENT='+s+''); iimPlayCode('TAG POS=1 TYPE=BUTTON FORM=ACTION:/reward ATTR=ID:submitButton'); iimPlayCode('FILEDELETE NAME='+kash+'kash.jpg'); iimPlayCode('WAIT SECONDS=20');
Отсутствует
Koks спасибо но условия выполнения я знал как поменять. ошибка заключается в этой строке.
iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=ID:adcopy_response CONTENT='+s+'');
Отсутствует
shlot
Попробуй так
var txt=''; if(txt!='' && txt.length>5){ iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=ID:adcopy_response CONTENT='+txt+''); iimPlayCode('SET !TIMEOUT 30\nTAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:NoFormName ATTR=*');} else reload(); /***-= Обновление капчи =-***/ 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);}
Отредактировано Koks (07-03-2016 14:27:07)
Отсутствует
Koks
Спасибо попробовал но тратиться много времени на пере отправку в итоге попробовал вставить ERRORIGNORE в разных вариантах не помогло и решил прописать так.
try { iimPlayCode('WAIT SECONDS=1\nTAB CLOSE'); iimPlayCode('SET !TIMEOUT 5\nTAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=ID:adcopy_response CONTENT='+s+'');} catch(ошибка) { iimPlayCode('SET !TIMEOUT 5\nTAG POS=1 TYPE=BUTTON FORM=ACTION:/reward ATTR=ID:submitButton');} iimPlayCode('FILEDELETE NAME='+kash+'kash.jpg'); iimPlayCode('WAIT SECONDS=20')
iimPlayCode('SET !TIMEOUT 5\nTAG POS=1 TYPE=BUTTON FORM=ACTION:/reward ATTR=ID:submitButton');
Отсутствует
shlot Koks
Для этого ответ нужно обернуть в двойные кавычки
... CONTENT=
'+txt+'
');
... CONTENT=
'+s+'
');
gepavlik
По идее этот массив и не нужен, увеличивай всегда ставку на 2, а при выигрыше ставка опять равна 1.
Но так ты всегда будешь выигрывать только 1
Я бы при каждом проигрыше, делал s=sх2+1;
Отредактировано PRESIDENT (07-03-2016 20:18:56)
Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.
Отсутствует
PRESIDENT
А если я ввел скрипт на поиск ошибки то по идее он решает проблему связною с вводам как пустого значения, так и согласования CONTENT='+s+''); без исправлений но большое спасибо PRESIDENT
подправлю на CONTENT="'+s+'"'); хотя при 100 прогонов ошибок выполнения не было.
Вот еще вопрос целесообразности повтора скрипта и отправки капчи 2 раз.При 1 минутном таймере. Мне кажется повторное выполнение нецелесобзразно. Проще пропустить ошибку и запустить скрипт по таймеру заново.
И еще маленький вопрос. Возможно ли запускать таймер ожидания согласовав его с выполнением всего сценария скрипта.Чтобы было как то так. Общее время выполнения скрипта ( переменная ) отнималось от значения таймера ожидания.(постоянное)
try { //Код, который проверяется на наличие ошибок } catch(ошибка) { //Код, который будет выполнен если в блоке try были найдены ошибки }
Отредактировано shlot (08-03-2016 00:24:02)
Отсутствует
Подскажите, пожалуйста. Вместо флэш капчи постоянно появляется такая картинка. С чем это может быть связано? Пробовал версии Firefox 37 и 45, плагин Shockwave Flash 20.0.0.306 включен.
Отсутствует
Правила форума iMacros:
1. Не рекомендуется:
1.4 Создавать темы или сообщения с просьбой написать скрипт. Если Вам нужна помощь в написании скрипта с «нуля», то опишите свою просьбу в теме «iMacros Скрипты. Поиск и заказ скриптов», или обратитесь в ПМ/на почту, к участникам форума «iMacros», с просьбой «написать скрипт» за Вас. В противном случае, сообщение может быть расценено как флуд.InfSub
Отсутствует
irixnode
Там цифры всегда посередине, если капчу по краям чуток обрезать, то онлайн сервисы OCR очень даже сносно распознают.
Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.
Отсутствует
PRESIDENT
я уже тоже про бывал recatcha номера домов как не обрезай , онлайн сервисы OCR не распознают она темная разве что ты братишка поможешь нам написать PHP скрипт для инверсии оттенка немного что бы ее осветить малость
Добавлено 10-03-2016 16:04:00
SOLVEMEDIA добавила капчу с кодом
TAG POS=1 TYPE=OBJECT FORM=NAME:NoFormName ATTR=ID:adcopy-puzzle-image-image CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT
Отредактировано InfSub (10-03-2016 16:38:37)
Отсутствует
Всем доброго дня
Скажите пожалуйста как очистить значения txt
После того как мы его ввели
txt=a.split(/:|=/)[1]; iimPlayCode(t0+'TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=ID:adcopy_response CONTENT="'+txt+'"');weit(1);
Правила форума iMacros:
1. Не рекомендуется:
1.6 .... Для ответов на вопросы, из серии: как сложить a+b в js и аналогичных - есть Google. ...InfSub
Отредактировано Koks (10-03-2016 16:49:49)
Отсутствует
Koks
при чем тут:
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
InfSub
Братишка подскажи пожалуйста вот например мы парсим капчу ,сохраняем ее например
iimPlayCode('ONDOWNLOAD FOLDER=C:\\tmp\\2\\ FILE=image'+n+'.jpg WAIT=YES\nTAG POS=1 TYPE=EMBED ATTR=ID:adcopy-puzzle-image-image CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT');
Отсутствует
Здравствуйте,
помогите разобраться
Этот код вроде как вставляет адрес, но после ввода капчи и логина, иногда логинится иногда нет
Что не так?
Отсутствует
raileb
if(iimPlayCode('TAG POS=2 TYPE=INPUT:TEXT FORM=ID:form ATTR=ID:*')>0) iimPlayCode('TAG POS=2 TYPE=INPUT:TEXT FORM=ID:form ATTR=ID:* CONTENT=кошелек'); else iimPlayCode('TAG POS=1 TYPE=INPUT:TEXT FORM=ID:form ATTR=ID:* CONTENT=кошелек');
Отредактировано Koks (10-03-2016 21:43:49)
Отсутствует
Господа и дамы! Очень хотелось бы перечитать всю эту ветку, очень она для меня интересна, но не располагаю временем.
Потому хотелось бы задать вопрос, меня тревожащий. Подскажите, после ввода капчи Recaptcha v2 и нажатия кнопки Verify каким образом можно определить разгадана она или нет? Надпись "Please select all matching images"
FRAME F=N TAG POS=1 TYPE=DIV ATTR=CLASS:rc-imageselect-error-select-more EXTRACT=TXT
А если искать картинку с этой надписью, поиск не всегда срабатывает. Или срабатывает на разных компьютерах по-разному.
Помогите разобраться, кто знает, пожалуйста!
Отсутствует
Koks
нас учат люди а мы наступаем опять на грабли так проще и всегда добавить новый код можно
for(a=1; a<2; a++){ iimPlayCode('TAG POS=2 TYPE=INPUT:TEXT FORM=ID:form ATTR=ID:* CONTENT=1J21YaPF6BzHn8CWiEw82rA8Yq4UfoAj3P'); iimPlayCode('TAG POS=1 TYPE=INPUT:TEXT FORM=ID:form ATTR=ID:* CONTENT=1J21YaPF6BzHn8CWiEw82rA8Yq4UfoAj3P'); }
Добавлено 10-03-2016 23:59:48
raileb сделай братишка так как нас учат спецы InfSub и PRESIDENT
var btc='1J21YaPF6BzHn8CWiEw82rA8Yq4UfoAj3P'; function btc(){ iimPlayCode('TAG POS=2 TYPE=INPUT:TEXT FORM=ID:form ATTR=ID:* CONTENT='+btc); iimPlayCode('TAG POS=1 TYPE=INPUT:TEXT FORM=ID:form ATTR=ID:* CONTENT='+btc);}
Отредактировано gepavlik (10-03-2016 23:59:48)
Отсутствует
Eltar
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('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');}
Отредактировано Koks (11-03-2016 10:22:07)
Отсутствует
Как удалить все кроме цифр?
txt = iimGetExtract().replace(/\W/gi,"").replace(/[0-9]/gi,"").replace(/_/gi,""); \w только латинские буквы и цифры ну и нижний штрих сюда же попадает \W всё кроме того что выше replace(/\W/gi,"") это удалит все знаки кроме латинских букв и цифр и нижнего штриха replace(/[0-9]/g,"") удалит все цифры, можна и так replace(/\d/g,"") replace(/_/g,"") удалит нижний штрих
Отредактировано Koks (11-03-2016 15:10:15)
Отсутствует
Как удалить все кроме цифр?
Добавлено 11-03-2016 15:57:05
PRESIDENT
собственно зачем в этом выражении:
Отредактировано InfSub (11-03-2016 15:57:05)
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует