Обсуждение скриптов и вопросов связанных с борьбой с капчами.
========================================================================
Начну пожалуй.
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
В личку только с серьёзными предложениями по заказу скриптов/программ.
Отсутствует
у автора FRAME NAME=undefined
у вас FRAME NAME="*"
я не готов сказать, как именно в вашем случае ищется фрейм, хотя на сколько помню, раньше он по * не находился и вообще выдавал ошибку на такой способ поиска (могу ошибаться конечно)
конечно ошибаетесь! Я пробовал FRAME NAME=undefined и он уже давно не работает (3 года ж уже прошло с той поры). А вот если вместо нерабочего undefined прописать "*", то всё работает (пашет, фурычит, фунциклирует). Можете сами удостовериться при желании
но вопрос даже не в этом, а в том, что же вы пытаетесь добиться конструкцией:
как что? неужели непонятно? ну вы блин даёте!!! Я ж объяснял уже: этот скрипт ПРЕЗИДЕНТА я использую лишь отчасти, и не весь скрипт и не для автоматического распознавания с помощью сервисов типа Рукапчи. Просто не желаю я посылать капчу на сервис Рукапча. Нажимать на картинки я могу и сам вручную. Мой скрипт работает на полуавтомате, то есть когда вылазит гуглокапча, то я всего лишь нажимаю на картинки, когда картинки выбраны, нажимаю "продолжить". И всё, на этом ручная работа закончена. Появляется галочка что гуглокапча распознана. Как только она появилась, мой скрипт её фиксирует и дальше уже делает свою работу. Так понятно?
а на счёт этого кода что вам не понятно?
iimPlayCode('WAIT SECONDS=1'); iimPlayCode('FRAME NAME="*"\nTAG POS=1 TYPE=DIV ATTR=CLASS:*rc-anchor-checkbox-holder EXTRACT=HTM');}
Отредактировано spenser-zet (25-11-2018 03:41:45)
Отсутствует
Так понятно?
объясню еще раз, на пальцах:
iimPlayCode('FRAME NAME="*"\nTAG POS=1 TYPE=DIV ATTR=CLASS:*rc-anchor-checkbox-holder EXTRACT=HTM'); if(iimGetExtract().indexOf('checked="true')>0) break; else iimPlayCode('WAIT SECONDS=1'); iimPlayCode('FRAME NAME="*"\nTAG POS=1 TYPE=DIV ATTR=CLASS:*rc-anchor-checkbox-holder EXTRACT=HTM');}
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
объясните роль 4й строки?
там же до этой строчки стоят команды break; и else.
break значит остановиться, когда найден искомый элемент. А else значит "иначе", то есть что делать скрипту в случае если искомое не найдено. То есть повторять то, что же действие, что и в первой строке (из 4-х вами упомянутых), если элемент не найден.
Добавлено 25-11-2018 11:28:31
и кстати, секундная задержка там не для того, чтоб элементы страницы успели нормально загрузиться, а это время выдержки перед новым исполнением 4-й строки. То есть чтоб цикл поиска искомого "чекеда" был с периодичностью в 1 секунду.
Добавлено 25-11-2018 11:32:41
короче говоря я уже разобрался, что 4-я строчка тут и нафик не нужна. И команда else тоже. Уже убрал из скрипта.
Отредактировано spenser-zet (25-11-2018 12:26:33)
Отсутствует
про цикл вида:
скрытый текст
я вообще молчу, ибо тут можно только взгрустнуть, уронить скупую мужскую слезу и отправить автора данного цикла читать основы js
Вот с этого места поподробней, пожалуйста! Что тут не так, в этом образце простого классического цикла? Или может за последние 100 лет уже изобрели более современные виды циклического исполнения скриптов, которые радикально отличаются от приведённого выше?
Может просветите?
Отредактировано spenser-zet (25-11-2018 12:25:44)
Отсутствует
spenser-zet
while()
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
Извините что спрашиваю тут. Вопрос не про макросы, а про капчу. Если даже условный "светороф" или "гидрант" вылез на полпикселя на соседний квадрат, этот квардрат тоже отмечать? Или это будет ошибкой?
Отсутствует
dreamkz
да
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
Понятно, спасибо! А то в последнее время с этими ограничениями провайдеров и отсюда вынужденным использованием VPN некоторые сайты стали показывать эти капчи. Особенно гугл-сервисы. Раздражать стало. Будем помечать и пиксели гидрантов.
Отсутствует
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
Проба пера:
Вообщем попробовал и я поиграться с нейронками. За основу модели взял тренированную Tensorflow SSD_Mobilenet_V1_pnp из-за маленького размера.
Для обучения подсунул 500 картинок Solvemedia. Тренировал 2 дня (пока не надоело)). Из тренировки исключил буквы i,j,l. (не знаю правильно ли сделал?)
Потом подсунул ей (нейронке) 2010 картинок (распознала 70%, а если еще и найти хороший алгоритм нечеткого поиска слова в словаре по шаблону, то процент можно поднять до 74-75).
Но есть одно но, распознавание зависит от того, конечное ли число фраз в Solvemedia. , т.е. нужно собрать словарь всех фраз капчи, без этого никак.
Ссылка на модель:
InfSub
Отредактировано mmmaks2004 (04-01-2019 23:40:16)
Отсутствует
Есть ли где ни будь другие модули скачать проверить на простые капчи?
Отсутствует
знатоки подскажите -мне нужно изьять сумму в кашельке из такова формата получаемого при екстракте
-- [ boxy ] wallet2.010000 BOXY
я делаю так
InfSub
Отсутствует
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
myse
а заменить регулярку, используемую у вас, на эту, не...?
про то что replace тут вообще не уместен, я вообще молчу... для этого есть match() или exec()
replace() будет работать с выражением выше, разве что внутри eval() нужен двойной обратный слеш, а не одинарный перед метасимволами, как минимум перед точкой
SET !EXTRACT "-- [ boxy ] wallet2.010000 BOXY" SET !VAR1 EVAL("'{{!EXTRACT}}'.replace(/.*?(\d*\\.\d+).*/, '$1');") prompt {{!var1}}
SET !EXTRACT "-- [ boxy ] wallet2.010000 BOXY" SET !VAR1 EVAL("'{{!EXTRACT}}'.match(/\d*\.\d+/);") prompt {{!var1}}
Отредактировано InfSub (10-03-2019 07:34:07)
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
mmmaks2004
удалено, избыточное и ненужное цитирование
Спасибо! Слушай, подскажи-ка пожалуйста, а много ли надо усилий потратить, чтоб через эту нейронку разгадывать не простую капчу, а ещё и с арифметикой? В частности вот такую надо:
InfSub
Отсутствует
Odessaman
InfSub
Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.
Отсутствует
Odessaman
такую капчу даже человеку разгадать трудно, надо растрелять админа
Отсутствует
Попробуй XEvil-у подсунуть
Спасибо! Программа реально гадает эту капчу. Хоть и не на 100%, но если попадается попроще каптча, то тоже вполне нормально.
Отсутствует
Я в своих скриптах использую такую конструкцию, меня пока устраивает за исключением одного нюанса. Демка временами отдаёт ответ со звездочкой, но и это можно обойти, конечно, придется тратить время, к примеру, при постинге, где ни будь, прилетел ответ искажённый то отправляете субмит в результате ошибки получаете новую капчу и уже на новую вероятно получите правильный ответ от xevil.
Данные несколько кусков кода работают у меня в скрипте для комментирования UCOZ сайтов
Вырезка из управляющего js скрипта:
iimPlay("Z:\\iMacros\\ваша папка\\capcha-ucoz.iim") for (;;){ check = content.document.body.innerHTML; if (~check.indexOf('XEvil 3.0.2') || ~check.indexOf('ERROR_NO_SLOT_AVAILABLE')) { iimPlay("Z:\\iMacros\\ваша папка\\capcha-ucoz-povtor.iim",60) } else { iimPlay("Z:\\iMacros\\ваша папка\\capcha-ucoz-good.iim",60) break }
1
SET !ERRORIGNORE YES SET !REPLAYSPEED 1 SET !TIMEOUT_PAGE 120 ONDOWNLOAD FOLDER=C:\CAPCHA FILE=captcha.jpg TAG POS=1 TYPE=IMG ATTR=SRC:http://*/secure/?k=* CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT 'PAUSE TAB OPEN TAB T=2 URL GOTO=file:///D:/%D0%9C%D0%BE%D0%B8%20%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D1%8B/Desktop/imacros-local.html TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:http://192.168.0.8:80/in.php ATTR=NAME:key CONTENT=feb056d3be7b4a4eac291bea2a34b3ab TAG POS=1 TYPE=INPUT:FILE FORM=ACTION:http://192.168.0.8:80/in.php ATTR=NAME:file CONTENT=C:\CAPCHA\captcha.jpg TAG POS=1 TYPE=INPUT:SUBMIT FORM=ACTION:http://192.168.0.8:80/in.php ATTR=* 'Команда ожидания появления текста ответа на капчу 1 ответ до 16 сек далее от 8 сек WAIT SECONDS=3 TAG POS=1 TYPE=* ATTR=TXT:* EXTRACT=TXT SET captid EVAL("var s=\"{{!EXTRACT}}\"; s.split(' ')[0].split('|')[1]") SET !EXTRACT NULL 'Get the answer URL GOTO= http://192.168.0.8:80/res.php?key=feb056d3be7b4a4eac291bea2a34b3ab&action=get&id={{captid}} 'Wait for the answer WAIT SECONDS=3
SET !ERRORIGNORE YES SET !REPLAYSPEED 1 SET !TIMEOUT_PAGE 120 'ONDOWNLOAD FOLDER=C:\CAPCHA FILE=captcha.jpg 'TAG POS=1 TYPE=IMG ATTR=SRC:http://*/secure/?k=* CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT 'PAUSE 'TAB OPEN 'TAB T=2 URL GOTO=file:///D:/%D0%9C%D0%BE%D0%B8%20%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D1%8B/Desktop/imacros-local.html TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:http://192.168.0.8:80/in.php ATTR=NAME:key CONTENT=feb056d3be7b4a4eac291bea2a34b3ab TAG POS=1 TYPE=INPUT:FILE FORM=ACTION:http://192.168.0.8:80/in.php ATTR=NAME:file CONTENT=C:\CAPCHA\captcha.jpg TAG POS=1 TYPE=INPUT:SUBMIT FORM=ACTION:http://192.168.0.8:80/in.php ATTR=* 'Команда ожидания появления текста ответа на капчу 1 ответ до 16 сек далее от 8 сек WAIT SECONDS=3 TAG POS=1 TYPE=* ATTR=TXT:* EXTRACT=TXT SET captid EVAL("var s=\"{{!EXTRACT}}\"; s.split(' ')[0].split('|')[1]") SET !EXTRACT NULL 'Get the answer URL GOTO= http://192.168.0.8:80/res.php?key=feb056d3be7b4a4eac291bea2a34b3ab&action=get&id={{captid}} WAIT SECONDS=3
SET !ERRORIGNORE YES SET !REPLAYSPEED 1 SET !TIMEOUT_PAGE 120 'EVENT TYPE=CLICK SELECTOR="HTML>BODY" BUTTON=0 EXTRACT=TXT TAG XPATH=".//body" EXTRACT=TXT SET !VAR1 EVAL("'{{!EXTRACT}}'.replace('OK|','')") SET !EXTRACT NULL TAB CLOSE TAB T=0 'TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:addform ATTR=NAME:code CONTENT={{!VAR1}} 'Посимволный ввод полученного ответа на капчу EVENT TYPE=CLICK SELECTOR="#fCode" BUTTON=0 EVENTS TYPE=KEYPRESS SELECTOR="#fCode" CHARS={{!VAR1}} 'Во время паузы проверить правильность введенной капчи PAUSE 'TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:NoFormName ATTR=* 'Отправка формы эмуляцией нажатия ENTER 'EVENT TYPE=KEYPRESS SELECTOR="#fCode" KEY=13 'TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:addform ATTR=NAME:submit EVENT TYPE=CLICK SELECTOR="#addcBut" BUTTON=0 'Пока во время паузы вручную отключать CapMonstr SET !TIMEOUT_STEP 20 TAG POS=1 TYPE=SPAN ATTR=TXT:Неправильный<SP>код<SP>безопасности 'PAUSE 'TAB T=2 'SET !TIMEOUT_STEP 20 'TAG POS=1 TYPE=SPAN ATTR=TXT:Комментарий<SP>успешно* PAUSE SET WaitSeconds0 EVAL("var min=1,max=3;Math.floor(Math.random()*(max-min+1))+min;") WAIT SECONDS={{WaitSeconds0}} 'TAB CLOSE 'TAB T=1
Отредактировано googlenoob (14-03-2019 16:07:01)
Отсутствует
googlenoob спасибо за то, что откликнулся! Но без js как-то совсем печально. Надо именно на js делать скрипт! Только так можно нормально работать с капчами и вообще!
Но вопрос в следующем: как состыковать imacros и js с этой программой по гаданию капчи? Желательно чтоб кто-то опытный подсказал нам, как это сделать правильно. Так оно и тебе бы тоже пригодилось: был бы один нормальный скрипт, а не целая солянка, управляемая одним недоработанным js.
Вот оинтересует именно как состыковать скрипт и xevil. Что надо написать, эмулятор Антигейта? И через него посылать капчу в программу? Или как? Подсажите кто-нибудь пожалуйста.
Отсутствует
Odessaman так вам и дали кусок js-кода, который подгружает iim-код, в чем проблема-то? в чем печаль? или вам все на блюдечке, за вас написать надо? идите тогда в тему заказа скриптов, вам напишут по нашему ТЗ...
не нравится код в iim, перенесите его в управляющий js.. дело 10и минут, суть от этого не изменится,файлов только меньше будет и взаимосвязей соответственно
Добавлено 14-03-2019 17:26:41
Вот оинтересует именно как состыковать скрипт и xevil.
откройте документацию по xevil и посмотрите как передать параметры через командную строку, в faq есть пример запуска ПО с параметрами из imacros
Отредактировано InfSub (14-03-2019 17:29:09)
Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox
на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!
Отсутствует
Вот оинтересует именно как состыковать скрипт и xevil. Что надо написать, эмулятор Антигейта? И через него посылать капчу в программу? Или как? Подсажите кто-нибудь пожалуйста.
Не эмулятор отправляет, а файл HTML страницы imacros-local.html
Отсутствует
Не эмулятор отправляет, а файл HTML страницы imacros-local.html
Да, верно! Именно файл HTML. А эмулятор это уже в самой программе имеется. Всё верно. Нужен именно этот файл HTML страницы imacros-local.html Спасибо за уточнение! И за предоставленные коды тоже.
Попробую из них сделать один js скрипт. Если получится, выложу сюда, возможно и другие воспользуются. Мне не жалко удалено, п.п. 3.13
InfSub
Отредактировано Odessaman (14-03-2019 18:59:15)
Отсутствует