Полезная информация

Общайтесь со знакомыми и друзьями в нашей группе в Контакте.
  • Форумы
  •  » iMacros
  •  » iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

№108-11-2015 20:38:53

PRESIDENT
Участник
 
Группа: Members
Зарегистрирован: 09-04-2015
Сообщений: 885
UA: Firefox 42.0

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.



========================================================================


  Обсуждение скриптов и вопросов связанных с борьбой с капчами.


========================================================================




Начну пожалуй. :)


reCaptcha 2 сохранение на компьютер.
Директорию C:\\CapNum\\, куда сохранять и  имя файла/капчи cap.jpg, естественно можете заменить на свои.


Выделить код

Код:

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);



=====================================================
RECAPTCHA
=====================================================

скрипт рекапчи, с уменьшением размера картинки и отправлением на рукапчу для распознания
https://pastebin.mozilla.org/8868144

Выделить код

Код:

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');}}



=====================================================
SOLVEMEDIA
=====================================================

Пытаемся взломать или ищем флеш капчу.
Солвемедия ломается без проблем, если у вас динамический IP.
После каждого распознавания капчи, нужно менять IP, чистить куки и желательно подменять узер агент, т.е. версию операционки и браузера.

Сначала качаем вот это и распаковываем в папку  C:\CapNum\


Обратите внимание, я в скрипте ввёл свои сокращения (мне так удобнее) t0 t3
И если будете копировать только кусок скрипта то и шапку копируйте.

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);}


to be continued...:)

Отредактировано PRESIDENT (19-04-2016 18:30:59)


Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.

Отсутствует

 

№82723-06-2016 22:22:33

PRESIDENT
Участник
 
Группа: Members
Зарегистрирован: 09-04-2015
Сообщений: 885
UA: Firefox 47.0

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

Ты не знаешь что такое for как 9 повторов сделать ? 9.gif


Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.

Отсутствует

 

№82823-06-2016 22:46:00

InfSub
iMacroModer
 
Группа: Moderators
Откуда: DeepTown
Зарегистрирован: 13-05-2013
Сообщений: 3319
UA: Firefox 45.0
Веб-сайт

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

dvitkovs пишет

тогда данная функция будет вечно обновлять капчу

введите еще одну переменную в функцию и передавайте ее в функцию при вызове из самой функции, при этом увеличивая на единицу
в самой функции сделайте с помощью условного оператора if - ограничитель, когда значение достигнет 9 - вызывайте return;

Добавлено 23-06-2016 22:48:01

PRESIDENT пишет

Ты не знаешь что такое for как 9 повторов сделать ?

предположу, что там не требуется всегда вызывать 9 повторов и данное условие требуется только в случае, если проверка капчи ушла в бесконечный цикл

Отредактировано InfSub (23-06-2016 22:48:01)


Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox


на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!

Отсутствует

 

№82923-06-2016 22:57:51

dvitkovs
Участник
 
Группа: Members
Зарегистрирован: 08-11-2015
Сообщений: 266
UA: Palemoon 25.0

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

InfSub пишет

предположу, что там не требуется всегда вызывать 9 повторов и данное условие требуется только в случае, если проверка капчи ушла в бесконечный цикл

именно так.

Добавлено 23-06-2016 23:03:53

PRESIDENT пишет

Ты не знаешь что такое for как 9 повторов сделать ?

Сделал так:

скрытый текст

Выделить код

Код:

function test1() {
 for(m=1; m<9; m++){
 var reload = iimPlayCode(t1+f2+'TAG POS=1 TYPE=DIV ATTR=TABINDEX:0&&CLASS:rc-text-desc-wrapper');
 if (reload==1){
  iimPlayCode(f2+'EVENT TYPE=CLICK SELECTOR="#recaptcha-reload-button" BUTTON=0'); weit(1);
 test1();
   return;} else {}
   }
   reconekt();}


но что-то оно все равно цикл безконечный.

Отредактировано dvitkovs (23-06-2016 23:05:17)

Отсутствует

 

№83023-06-2016 23:12:41

PRESIDENT
Участник
 
Группа: Members
Зарегистрирован: 09-04-2015
Сообщений: 885
UA: Firefox 47.0

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

А зачем ты внутри функции, её же опять вызываешь.
...
test1();
...

Функция сама себя запускает, поэтому и бесконечно.:(

скрытый текст

Выделить код

Код:

function test1() {
 for(m=1; m<9; m++){
 if(iimPlayCode(t1+f2+'TAG POS=1 TYPE=DIV ATTR=TABINDEX:0&&CLASS:rc-text-desc-wrapper')>0){
    iimPlayCode(f2+'EVENT TYPE=CLICK SELECTOR="#recaptcha-reload-button" BUTTON=0'); weit(1);} 
    else break;} reconekt();}

Отредактировано PRESIDENT (23-06-2016 23:17:48)


Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.

Отсутствует

 

№83123-06-2016 23:17:33

dvitkovs
Участник
 
Группа: Members
Зарегистрирован: 08-11-2015
Сообщений: 266
UA: Palemoon 25.0

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

PRESIDENT пишет

скрытый текст

Выделить код

Код:

function test1() {
 for(m=1; m<9; m++){
 if(iimPlayCode(t1+f2+'TAG POS=1 TYPE=DIV ATTR=TABINDEX:0&&CLASS:rc-text-desc-wrapper')>0){
    iimPlayCode(f2+'EVENT TYPE=CLICK SELECTOR="#recaptcha-reload-button" BUTTON=0'); weit(1);} 
    else break;} reconekt();}

Так вроде бы нормально, но реконнект включается когда надо и когда не надо. То есть реконнект включается всегда при вызове данной функции. А надо так, чтоб реконнект вызывался лишь только после 9 цикла.
А вот ежели бы было только один или 2 или 3 повтора, то реконнектить не надо. А то так получается, что уже после одного цикла (после одного обновления рекапчи, когда одного достаточно, чтоб появилась аудио-капча) включается реконнект. :(

Отредактировано dvitkovs (23-06-2016 23:53:57)

Отсутствует

 

№83223-06-2016 23:58:00

PRESIDENT
Участник
 
Группа: Members
Зарегистрирован: 09-04-2015
Сообщений: 885
UA: Firefox 47.0

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

del

Отредактировано PRESIDENT (24-06-2016 18:47:03)


Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.

Отсутствует

 

№83324-06-2016 00:11:12

dvitkovs
Участник
 
Группа: Members
Зарегистрирован: 08-11-2015
Сообщений: 266
UA: Palemoon 25.0

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

PRESIDENT пишет

скрытый текст

Выделить код

Код:

...
if(m>8)reconekt();

Так нормально. Благодарю! :)

Отсутствует

 

№83425-06-2016 11:17:59

Koks
Участник
 
Группа: Members
Зарегистрирован: 02-10-2015
Сообщений: 151
UA: Chrome 51.0

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

PRESIDENT
SOLVEMEDIA
Как бы cюда добавить проверку на url

скрытый текст

Выделить код

Код:

if(w!=100 && txt.length<5){


Можно конечно для каждого сайта сделать свою функцию, но хотелось бы минимизировать, вылетает с ошибкой
скрытый текст

Выделить код

Код:

if(w!=100 && url=='freebitco.in' && txt.length<5){
iimPlayCode('URL GOTO=imacros2.rucaptcha.com/new/\nWAIT SECONDS=#DOWNLOADCOMPLETE#');
**************
  }
 if(txt!='' && txt.length>5){

Отредактировано Koks (25-06-2016 11:30:20)

Отсутствует

 

№83525-06-2016 17:21:34

PRESIDENT
Участник
 
Группа: Members
Зарегистрирован: 09-04-2015
Сообщений: 885
UA: Firefox 47.0

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

Зачем сюда вообще урл лепить ?


Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.

Отсутствует

 

№83626-06-2016 03:45:01

PRESIDENT
Участник
 
Группа: Members
Зарегистрирован: 09-04-2015
Сообщений: 885
UA: Firefox 47.0

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

del    15.gif

Отредактировано PRESIDENT (29-06-2016 22:54:15)


Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.

Отсутствует

 

№83726-06-2016 13:39:18

dvitkovs
Участник
 
Группа: Members
Зарегистрирован: 08-11-2015
Сообщений: 266
UA: Palemoon 25.0

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

Здравствуйте! Подскажите кто-нибудь как решить проблему ошибки 991, периодически возникающей при работе третьего варианта кода, предложенного участником Egorushka1974, когда идёт проверка баланса на том или ином кране.
Вот его пост с тремя вариантами проверки баланса на кране: https://forum.mozilla-russia.org/viewto … 30#p705030

Вот код ошибки:

картинка
Screenshot-834.1466935984.png

там написано 45 линия. Вот она в скрипте:
картинка
Screenshot-837.1466937446.png

а вот как выглядит баланс на сайте:
картинка
Screenshot-836.1466936079.png

И главное: скрипт может работать хоть несколько часов - всё нормально, множество циклов исполняет - все нормально, баланс проверяется, всё работает. А в какой-то момент хопа.. и всё, выдает ошибку ни с того ни с сего и из-за этого работа скрипта прекращается. Ладно бы еслиб оно изначально не работало и писало какую-то ошибку, так нет - всё работает исправно. А после какого-то времени возьми да и выдай такую ошибку.
Я вот думаю может это связано с тем, что изначально третий вариант кода расчитан на запятые, которыми разделены цифры, а на сайте они разделены точкой:
картинка
Screenshot-836.1466936079.png

Может из-за этого быть или нет? Хотя по идее оно ведь работает что с запятыми, что с точками... А ошибка 991 всё равно периодически почему-то возникает. В чём может быть причина?

Отредактировано dvitkovs (26-06-2016 14:01:15)

Отсутствует

 

№83826-06-2016 15:35:15

PRESIDENT
Участник
 
Группа: Members
Зарегистрирован: 09-04-2015
Сообщений: 885
UA: Firefox 47.0

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

dvitkovs
Баланс почти на всех шаблонах в классе алерт-алерт-инфо или сукес
для 80% подходит что то типа этого

Выделить код

Код:

TAG POS=1 TYPE=* ATTR=CLASS:*alert*&&TXT:*Balance*

У тебя то работает, то не работает, скорее всего этот элемент на странице не успевает подгрузиться и регулярке не из чем работать, поэтому и ошибка в матч.


Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.

Отсутствует

 

№83926-06-2016 15:54:14

dvitkovs
Участник
 
Группа: Members
Зарегистрирован: 08-11-2015
Сообщений: 266
UA: Palemoon 25.0

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

PRESIDENT Благодарю! Попробую этот код.

Отредактировано dvitkovs (27-06-2016 18:53:53)

Отсутствует

 

№84029-06-2016 10:01:45

dvitkovs
Участник
 
Группа: Members
Зарегистрирован: 08-11-2015
Сообщений: 266
UA: Palemoon 25.0

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

PRESIDENT пишет

У тебя то работает, то не работает, скорее всего этот элемент на странице не успевает подгрузиться и регулярке не из чем работать, поэтому и ошибка в матч.

Да, это происходит по всей видимости из-за того, что баланс периодически на сайте меняется. И в момент изменения баланса на сайте, и в этот же самый момент скрипт делает запрос, то и получается, что не с чем работать и вылазит такая ошибка в матче нулл:

картинка
Screenshot-834.1466935984.png

А как можно исправит данный косяк? Можно ли например проверкой этого нулла, если нулевое значение, то повторить запрос?  Или может можно как-то игнор поставить на эту ошибку? А то из-за этого нулла вся работа скрипта останавливается.

Отредактировано dvitkovs (29-06-2016 10:05:53)

Отсутствует

 

№84129-06-2016 10:32:03

Eltar
Участник
 
Группа: Members
Зарегистрирован: 13-02-2016
Сообщений: 93
UA: Safari 4.0

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

dvitkovs
удалено, избыточное цитирование
Попробуйте комбинацию try{}catch(error){}
Описание этой комбинации погуглите. Логика: если выбивает такую ошибку и скрипт завершается, пробуем сделать что-то ещё, что сделать можно точно и таким образом продолжаем выполнение скрипта.
Или просто задержек какую-то поставьте перед извлечением баланса чтобы баланс успел подгрузиться (WAIT SECONDS=....)

InfSub

Отредактировано Eltar (29-06-2016 10:38:15)

Отсутствует

 

№84229-06-2016 11:20:32

dvitkovs
Участник
 
Группа: Members
Зарегистрирован: 08-11-2015
Сообщений: 266
UA: Palemoon 25.0

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

Eltar пишет

Или просто задержек какую-то поставьте перед извлечением баланса чтобы баланс успел подгрузиться (WAIT SECONDS=....)

Нашол я причину. И дело тут не в подгрузке баланса, а в том, что за 60 секунд отведенных на загрузку страницы, она может так и не загрузиться по тем или иным причинам (например проблем с интернетом). Тогда будет пустая страница и соответственно команде, проверяющей баланс не с чем работать.
Значит что можно сделать? Единственное верное решение - это игнор ошибки. Только как бы этот игнор наиболее грамотно записать?

Вот допустим: имеем мы такую команду проверки баланса

скрытый текст

Выделить код

Код:

iimPlayCode('TAG POS=1 TYPE=* ATTR=CLASS:*alert*&&TXT:*Balance* extract=txt'); balance=iimGetExtract().match(/\d+/g).join('');


как её переиначить, чтоб ошибку null игнорило?

Отредактировано dvitkovs (29-06-2016 12:44:07)

Отсутствует

 

№84329-06-2016 13:39:14

Док
Участник
 
Группа: Members
Зарегистрирован: 26-02-2014
Сообщений: 27
UA: Firefox 43.0

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

dvitkovs пишет

удалено, избыточное цитирование

как её переиначить, чтоб ошибку null игнорило?

Eltar написал же "Попробуйте комбинацию try{}catch(error){}"

скрытый текст

Выделить код

Код:

iimPlayCode('TAG POS=1 TYPE=* ATTR=CLASS:*alert*&&TXT:*Balance* extract=txt'); try {balance=iimGetExtract().match(/\d+/g).join('');}catch(e){balance=100; alert('Ваше действие');}


Если баланс загрузился то вы его и получите, если нет (ошибка null например в вашем случае) - то выполнится альтернативное действие которое пропишете. скрипт продолжит выполнение как будто ошибки и не было,

InfSub

Отсутствует

 

№84429-06-2016 13:49:47

dvitkovs
Участник
 
Группа: Members
Зарегистрирован: 08-11-2015
Сообщений: 266
UA: Palemoon 25.0

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

Eltar
Док
Благодарю!

Добавлено 29-06-2016 13:55:31
Подскажите ещё, как извлечь баланс (число) из информации полученной гет-запросом?

картинка
Screenshot-848.1467197533.png

Вот скрипт на гет-запрос:
скрытый текст

Выделить код

Код:

my_ip();
     alert(b);

function my_ip(){
   var CC=Components.Constructor;
   var a=CC("@mozilla.org/xmlextras/xmlhttprequest;1")();
       a.open('GET','http://www.rodeobtc.info/',false);
       a.send(null);
       b=a.response;
       return b;}


С его помощью мы получаем информацию (типа исходного кода страницы) с балансом. Как там очистить от всего лишнего, чтоб только баланс был?

Отредактировано dvitkovs (29-06-2016 13:55:31)

Отсутствует

 

№84529-06-2016 14:40:56

Док
Участник
 
Группа: Members
Зарегистрирован: 26-02-2014
Сообщений: 27
UA: Firefox 43.0

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

dvitkovs пишет

Как там очистить от всего лишнего, чтоб только баланс был?

Сразу баланс думаю никак. Сначала надо извлекать строку

Выделить код

Код:

var balance=b.match(/Balance.+satoshi/); balance=balance[0].replace(/\D+/g, ""); alert(balance)

Отсутствует

 

№84629-06-2016 21:36:36

InfSub
iMacroModer
 
Группа: Moderators
Откуда: DeepTown
Зарегистрирован: 13-05-2013
Сообщений: 3319
UA: Chrome 51.0
Веб-сайт

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

dvitkovs

скрытый текст

Выделить код

Код:

var balance=b.match(/balance: ([\d\.])+/i).pop();


Правила форума iMacros for Firefox
Мини FAQ по iMacros for Firefox


на почту, только с интересными предложениями по скриптам (iMacros/iMacros+JS)!

Отсутствует

 

№84730-06-2016 00:30:46

dvitkovs
Участник
 
Группа: Members
Зарегистрирован: 08-11-2015
Сообщений: 266
UA: Palemoon 25.0

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

Док
InfSub
Благодарю! :)

Отсутствует

 

№84830-06-2016 15:20:53

Eltar
Участник
 
Группа: Members
Зарегистрирован: 13-02-2016
Сообщений: 93
UA: Firefox 47.0

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

Доброго времени суток, господа и дамы!
Ребята, не знаете, случайно, как работать с ассоциативной капчой (которая выскакивает вместо аудиокапчи в Recaptcha v.2)? Допустим, отпарсили задание, 10 вариантов ответов, распознали каким-то методом. К примеру, нужно выбрать 5, 2, 9 ответ.Надо эти ответы ввести. И тут  самое интересное на мой взгляд.
Код кнопок если записывать EVENT'АМИ:

скрытый текст

Выделить код

Код:

EVENT TYPE=CLICK SELECTOR="#rc-text-target>TABLE>TBODY>TR:nth-of-type(2)>TD" BUTTON=0//- 2-й ответ


Код кнопок если записывать html-тегами:
скрытый текст

Выделить код

Код:

TAG POS=2 TYPE=TD ATTR=TABINDEX:0&&ROLE:checkbox&&ARIA-CHECKED:false// - 2-й ответ


И тут заковыка выходит. После ввода каждого ответа значения POS=2 может измениться на POS=1, значение "#rc-text-target>TABLE>TBODY>TR:nth-of-type(2) меняется на  "#rc-text-target>TABLE>TBODY>TR:nth-of-type(1).

Например, как выбрать 5, 2, и 9 ответ? Ведь если выбираем тегами:

скрытый текст

Выделить код

Код:

TAG POS=5... // - 5-й ответ
TAG POS=2... // - 2-й ответ


то код 9 ответа меняется с TAG POS=9... на TAG POS=7...
Можно, конечно, по мере ввода ответов уменьшать значение POS на 1, но как быть в случае если ответ будет в последовательности: 9,2,5?
Можно отсортировать ответы в порядке возрастания, с другой стороны, тогда всякий последующий ответ нужно будет значение POS уменьшить на 1... Особенно если список всех ответов и список правильных ответов в двух разных массивах - сравнили ответы, совпавшие загнали еще в один массив и воспользуемся методом .sort. Но это как-то слишком сложно, мне кажется. У кого-нибудь есть решение попроще?

Отредактировано Eltar (30-06-2016 15:26:59)

Отсутствует

 

№84930-06-2016 15:51:19

dim222
Участник
 
Группа: Members
Зарегистрирован: 06-03-2016
Сообщений: 417
UA: Chrome 51.0

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

Eltar
Посмотри . На форуме не давно только это обсуждалось. С кода  Выдергивать фразу и варианты.
.....извиняюсь не совсем понял вопрос.
А что-то типа на примере рекапчи (нажатия на чебоксы) нельзя разве реализовать?

Отредактировано dim222 (30-06-2016 17:54:44)

Отсутствует

 

№85030-06-2016 17:00:06

PRESIDENT
Участник
 
Группа: Members
Зарегистрирован: 09-04-2015
Сообщений: 885
UA: Firefox 47.0

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

Eltar

скрытый текст
Да просто вот так

Выделить код

Код:

TAG POS=1 TYPE=TD ATTR=TXT:слово или фраза

про фрейм не забываем


Backend developer
PHP, JAVA, C#, Python
В личку только с серьёзными предложениями по заказу скриптов/программ.

Отсутствует

 

№85130-06-2016 17:19:13

Eltar
Участник
 
Группа: Members
Зарегистрирован: 13-02-2016
Сообщений: 93
UA: Firefox 47.0

Re: iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

PRESIDENT, спасибо большое!

Отсутствует

 
  • Форумы
  •  » iMacros
  •  » iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]