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

Хотите узнать больше о расширениях? Посмотрите ролики, рассказывающие о работе с расширениями Firefox.
  • Форумы
  •  » iMacros
  •  » iMacros: Капчи, сохранение и распознавание. reCaptcha, Solve Media.

№108-11-2015 20:38:53

PRESIDENT
Участник
 
Группа: Members
Зарегистрирован: 09-04-2015
Сообщений: 879
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)


На глупые вопросы не отвечаю !!!

В личку только с предложениями по заказу скриптов.

Отсутствует

 

№107707-09-2016 18:24:21

Hamzat
Участник
 
Группа: Members
Зарегистрирован: 30-03-2015
Сообщений: 326
UA: Chrome 52.0

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

dvitkovs

Здравствуйте! Подскажите, как добавить комбинацию  try{}catch(error){} к ГЕТ запросу для определения баланса?

Для этих вещей уже давно придумали асинхронные запросы, пользуйтесь.


iMacros скрипты на заказ!

Отсутствует

 

№107807-09-2016 18:25:23

denbal
Участник
 
Группа: Members
Зарегистрирован: 23-08-2016
Сообщений: 17
UA: Chrome 52.0

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

Koks пишет:

Koks пишет:

скрипт на 16 кранов,  может кому пригодится

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

Выделить код

Код:

 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 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 ab=Cc["@mozilla.org/moz/jssubscript-loader;1"].getService(Ci.mozIJSSubScriptLoader);
 var t0='SET !TIMEOUT_STEP 0\n', t3='SET !TIMEOUT 30\n';
 var txt='', bonus=null, w=0;
 var kap="javascript:document.write('<b><h1>Распознаём капчу !</h1></b>');window.stop();";
 var Path='C:\\CapNum\\solve\\';

 var lisk='************';
 var bit='************';
 var ethereum='************';
 var ltc='************';
 var dash='************';
 var moon='************';
 var doge='************';
 var pass='************';
 var email='************';

 //*** 1 кран включён, 0 отключен ***//
 var liskfaucet = 1 ;
 var ethfaucet = 1 ;
 var etherfaucet = 1 ;
 var luckynumbers = 1 ;
 var moonlitecoin = 1 ;
 var moondogecoin = 1 ;
 var moonbitcoin = 1 ;
 var jupiterbitcoin = 1 ;
 var sunbitcoin = 1 ;
 var btc_rena_faucet = 1 ;
 var doge_rena_faucet = 1 ;
 var ltc_rena_faucet = 1 ;
 var dash_rena_faucet = 1 ;
 var moon_rena_faucet = 1 ;
 var coffefaucet = 1 ;
 var usafaucet = 0 ;

 for(;;){

    for(sk=1; sk<=4; sk++){

    del_cookis();

if(Number(liskfaucet)>=1){
/********************liskfaucet.net 5 минут**************************************/
     iimPlayCode('CLEAR\nTAB CLOSEALLOTHERS\nURL GOTO=liskfaucet.net?r=9030369917489677407L');
     if(iimPlayCode(t0+'TAG POS=1 TYPE=INPUT:TEXT ATTR=ID:adcopy_response')<0){iimPlayCode('URL GOTO=liskfaucet.net?r=9030369917489677407L');}
     solve();
     iimPlayCode('URL GOTO=about:home');
     weit(3);}

if(Number(ethfaucet)>=1){
/********************eth-faucet.com 5 минут**************************************/
     iimPlayCode('CLEAR\nTAB CLOSEALLOTHERS\nURL GOTO=eth-faucet.com?r=0x903c7ab2a5b38fd8f2cf48dab8695b71ccaafd6e');
     if(iimPlayCode(t0+'TAG POS=1 TYPE=INPUT:TEXT ATTR=ID:adcopy_response')<0){iimPlayCode('URL GOTO=eth-faucet.com?r=0x903c7ab2a5b38fd8f2cf48dab8695b71ccaafd6e');}
     solve();
     iimPlayCode('URL GOTO=about:home');
     weit(3);}

if(Number(etherfaucet)>=1){       
/********************etherfaucet.net 5 минут**************************************/
     iimPlayCode('CLEAR\nTAB CLOSEALLOTHERS\nURL GOTO=etherfaucet.net?r=0x903c7ab2a5b38fd8f2cf48dab8695b71ccaafd6e');
     if(iimPlayCode(t0+'TAG POS=1 TYPE=INPUT:TEXT ATTR=ID:adcopy_response')<0){iimPlayCode('URL GOTO=etherfaucet.net?r=0x903c7ab2a5b38fd8f2cf48dab8695b71ccaafd6e');}
     solve();
     iimPlayCode('URL GOTO=about:home');
     weit(3);}

if(Number(luckynumbers)>=1){
     iimPlayCode('CLEAR\nTAB CLOSEALLOTHERS\nURL GOTO=lucky-numbers.co/r/?id=19076');
     iimPlayCode('TAG POS=1 TYPE=A ATTR=TXT:Login\nTAG POS=1 TYPE=INPUT:TEXT FORM=ID:login ATTR=ID:email CONTENT='+email+'\nTAG POS=1 TYPE=INPUT:PASSWORD FORM=ID:login ATTR=ID:password CONTENT='+pass);
     iimPlayCode('TAG POS=1 TYPE=BUTTON FORM=ID:login ATTR=TXT:LOGIN\nTAG POS=1 TYPE=A ATTR=TXT:Free<SP>Bitcoins');
     solve();
     iimPlayCode('URL GOTO=about:home');
     weit(3);}

if(Number(moonlitecoin)>=1){
 /*********************moonlite.co.in 5 минут************************************/
     iimPlayCode('CLEAR\nTAB CLOSEALLOTHERS\nURL GOTO=moonliteco.in?ref=202bdd8377c0');
     if(iimPlayCode(t0+'TAG POS=1 TYPE=INPUT:TEXT FORM=ID:MainForm ATTR=ID:BodyPlaceholder_PaymentAddressTextbox*')<0){
         iimPlayCode('URL GOTO=moonliteco.in?ref=202bdd8377c0');}
     iimPlayCode(t0+'TAG POS=1 TYPE=INPUT:TEXT FORM=ID:MainForm ATTR=ID:BodyPlaceholder_PaymentAddressTextbox CONTENT='+ltc);
     solve();
     iimPlayCode('URL GOTO=about:home');
     weit(3);}

if(Number(moondogecoin)>=1){
 /*********************moondoge.co.in 5 минут************************************/
     iimPlayCode('CLEAR\nTAB CLOSEALLOTHERS\nURL GOTO=moondoge.co.in/?ref=b2530161270e');
     if(iimPlayCode(t0+'TAG POS=1 TYPE=INPUT:TEXT FORM=ID:MainForm ATTR=ID:BodyPlaceholder_PaymentAddressTextbox*')<0){
         iimPlayCode('URL GOTO=moondoge.co.in/?ref=b2530161270e');}
     iimPlayCode(t0+'TAG POS=1 TYPE=INPUT:TEXT FORM=ID:MainForm ATTR=ID:BodyPlaceholder_PaymentAddressTextbox CONTENT='+doge);
     solve();
     iimPlayCode('URL GOTO=about:home');
     weit(3);}

if(Number(moonbitcoin)>=1){
 /*********************moonbit.co.in 5 минут************************************/
     iimPlayCode('CLEAR\nTAB CLOSEALLOTHERS\nURL GOTO=moonbit.co.in?ref=22f6a0e642a0');
     if(iimPlayCode(t0+'TAG POS=1 TYPE=INPUT:TEXT FORM=ID:dd2eGG26 ATTR=ID:BodyPlaceholder_PaymentAddressTextbox*')<0){
         iimPlayCode('URL GOTO=moonbit.co.in?ref=22f6a0e642a0');}
     iimPlayCode(t0+'TAG POS=1 TYPE=INPUT:TEXT FORM=ID:dd2eGG26 ATTR=ID:BodyPlaceholder_PaymentAddressTextbox CONTENT='+bit);
     solve();
     iimPlayCode('URL GOTO=about:home');
     weit(3);}

if(Number(jupiterbitcoin)>=1){
 /*********************jupiterbitcoin.com 10 минут************************************/
     iimPlayCode('CLEAR\nTAB CLOSEALLOTHERS\nURL GOTO=jupiterbitcoin.com/?r=VSOWASYIWATIJFFA');
     if(iimPlayCode(t0+'TAG POS=1 TYPE=INPUT:TEXT ATTR=ID:adcopy_response')<0){
         iimPlayCode('URL GOTO=jupiterbitcoin.com/?r=VSOWASYIWATIJFFA');}
     solve();
     iimPlayCode('URL GOTO=about:home');
     weit(3);}

if(Number(sunbitcoin)>=1){
 /*********************sunbitcoin.com 10 минут************************************/
     iimPlayCode('CLEAR\nTAB CLOSEALLOTHERS\nURL GOTO=sunbitcoin.com/?r=VSOWASYIWATIJFFA');
     if(iimPlayCode(t0+'TAG POS=1 TYPE=INPUT:TEXT ATTR=ID:adcopy_response')<0){
         iimPlayCode('URL GOTO=sunbitcoin.com/?r=VSOWASYIWATIJFFA');}
     solve();
     iimPlayCode('URL GOTO=about:home');
     weit(50);}
    }

if(Number(btc_rena_faucet)>=1){
/*********************btc.rena-faucet.com 30 минут***************************/
     iimPlayCode('CLEAR\nTAB CLOSEALLOTHERS\nURL GOTO=btc.rena-faucet.com/index.php?id=71562');
     iimPlayCode('URL GOTO=btc.rena-faucet.com/index.php?id=71562');weit(3);
     iimPlayCode('TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:address_form ATTR=NAME:email CONTENT='+bit+'\nTAG POS=1 TYPE=A ATTR=TXT:Got<SP>it!\nTAG POS=1 TYPE=BUTTON FORM=NAME:address_form ATTR=ID:go');
     iimPlayCode('TAG POS=1 TYPE=SPAN ATTR=TXT:Faucet');weit(6);
     iimPlayCode('TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:furmularz ATTR=ID:submitbtn');weit(1);
     if(iimPlayCode(t0+'TAG POS=1 TYPE=INPUT:TEXT ATTR=ID:adcopy_response')<0){
         iimPlayCode('TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:furmularz ATTR=ID:submitbtn');}
     e=iimPlayCode(t0+'TAG POS=1 TYPE=* ATTR=TXT:You*can*claim*again*in*');
     if(e<0) solve();
     iimPlayCode(t3+'TAG POS=1 TYPE=A ATTR=TXT:dice');
     iimPlayCode(t3+'TAG POS=1 TYPE=INPUT:BUTTON FORM=NAME:NoFormName ATTR=*');weit(3);
     iimPlayCode('URL GOTO=about:home');
     weit(3);}

if(Number(doge_rena_faucet)>=1){
/*********************doge.rena-faucet.com 30 минут***************************/
     iimPlayCode('CLEAR\nTAB CLOSEALLOTHERS\nURL GOTO=doge.rena-faucet.com/index.php?id=193883');
     iimPlayCode('URL GOTO=doge.rena-faucet.com/index.php?id=193883');weit(3);
     iimPlayCode('TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:address_form ATTR=NAME:email CONTENT='+doge+'\nTAG POS=1 TYPE=A ATTR=TXT:Got<SP>it!\nTAG POS=1 TYPE=BUTTON FORM=NAME:address_form ATTR=ID:go');
     iimPlayCode('TAG POS=1 TYPE=SPAN ATTR=TXT:Faucet');weit(6);
     iimPlayCode('TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:furmularz ATTR=ID:submitbtn');weit(1);
     if(iimPlayCode(t0+'TAG POS=1 TYPE=INPUT:TEXT ATTR=ID:adcopy_response')<0){
         iimPlayCode('TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:furmularz ATTR=ID:submitbtn');}
     e=iimPlayCode(t0+'TAG POS=1 TYPE=* ATTR=TXT:You*can*claim*again*in*');
     if(e<0) solve();
     iimPlayCode(t3+'TAG POS=1 TYPE=A ATTR=TXT:dice');
     iimPlayCode(t3+'TAG POS=1 TYPE=INPUT:BUTTON FORM=NAME:NoFormName ATTR=*');weit(3);
     iimPlayCode('URL GOTO=about:home');
     weit(3);}

if(Number(ltc_rena_faucet)>=1){
/*********************ltc.rena-faucet.com 30 минут***************************/
     iimPlayCode('CLEAR\nTAB CLOSEALLOTHERS\nURL GOTO=ltc.rena-faucet.com/index.php?id=56139');
     iimPlayCode('URL GOTO=ltc.rena-faucet.com/index.php?id=56139');weit(3);
     iimPlayCode('TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:address_form ATTR=NAME:email CONTENT='+ltc+'\nTAG POS=1 TYPE=A ATTR=TXT:Got<SP>it!\nTAG POS=1 TYPE=BUTTON FORM=NAME:address_form ATTR=ID:go');
     iimPlayCode('TAG POS=1 TYPE=SPAN ATTR=TXT:Faucet');weit(6);
     iimPlayCode('TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:furmularz ATTR=ID:submitbtn');weit(1);
     if(iimPlayCode(t0+'TAG POS=1 TYPE=INPUT:TEXT ATTR=ID:adcopy_response')<0){
         iimPlayCode('TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:furmularz ATTR=ID:submitbtn');}
     e=iimPlayCode(t0+'TAG POS=1 TYPE=* ATTR=TXT:You*can*claim*again*in*');
     if(e<0) solve();
     iimPlayCode(t3+'TAG POS=1 TYPE=A ATTR=TXT:dice');
     iimPlayCode(t3+'TAG POS=1 TYPE=INPUT:BUTTON FORM=NAME:NoFormName ATTR=*');weit(3);
     iimPlayCode('URL GOTO=about:home');
     weit(3);}

if(Number(dash_rena_faucet)>=1){
/*********************dash.rena-faucet.com 30 минут***************************/
     iimPlayCode('CLEAR\nTAB CLOSEALLOTHERS\nURL GOTO=dash.rena-faucet.com/index.php?id=35669');
     iimPlayCode('URL GOTO=dash.rena-faucet.com/index.php?id=35669');weit(3);
     iimPlayCode('TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:address_form ATTR=NAME:email CONTENT='+dash+'\nTAG POS=1 TYPE=A ATTR=TXT:Got<SP>it!\nTAG POS=1 TYPE=BUTTON FORM=NAME:address_form ATTR=ID:go');
     iimPlayCode('TAG POS=1 TYPE=SPAN ATTR=TXT:Faucet');weit(6);
     iimPlayCode('TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:furmularz ATTR=ID:submitbtn');weit(1);
     if(iimPlayCode(t0+'TAG POS=1 TYPE=INPUT:TEXT ATTR=ID:adcopy_response')<0){
         iimPlayCode('TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:furmularz ATTR=ID:submitbtn');}
     e=iimPlayCode(t0+'TAG POS=1 TYPE=* ATTR=TXT:You*can*claim*again*in*');
     if(e<0) solve();
     iimPlayCode(t3+'TAG POS=1 TYPE=A ATTR=TXT:dice');
     iimPlayCode(t3+'TAG POS=1 TYPE=INPUT:BUTTON FORM=NAME:NoFormName ATTR=*');weit(3);
     iimPlayCode('URL GOTO=about:home');
     weit(3);}

if(Number(moon_rena_faucet)>=1){
/*********************moon.rena-faucet.com 30 минут***************************/
     iimPlayCode('CLEAR\nTAB CLOSEALLOTHERS\nURL GOTO=moon.rena-faucet.com/index.php?id=5713');
     iimPlayCode('URL GOTO=moon.rena-faucet.com/index.php?id=5713');weit(3);
     iimPlayCode('TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:address_form ATTR=NAME:email CONTENT='+moon+'\nTAG POS=1 TYPE=A ATTR=TXT:Got<SP>it!\nTAG POS=1 TYPE=BUTTON FORM=NAME:address_form ATTR=ID:go');
     iimPlayCode('TAG POS=1 TYPE=SPAN ATTR=TXT:Faucet');weit(6);
     iimPlayCode('TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:furmularz ATTR=ID:submitbtn');weit(1);
     if(iimPlayCode(t0+'TAG POS=1 TYPE=INPUT:TEXT ATTR=ID:adcopy_response')<0){
         iimPlayCode('TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:furmularz ATTR=ID:submitbtn');}
     e=iimPlayCode(t0+'TAG POS=1 TYPE=* ATTR=TXT:You*can*claim*again*in*');
     if(e<0) solve();
     iimPlayCode(t3+'TAG POS=1 TYPE=A ATTR=TXT:dice');
     iimPlayCode(t3+'TAG POS=1 TYPE=INPUT:BUTTON FORM=NAME:NoFormName ATTR=*');weit(3);
     iimPlayCode('URL GOTO=about:home');
     weit(3);}

if(Number(coffefaucet)>=1){
/*********************coffefaucet.com 30 минут************************************/
     iimPlayCode('CLEAR\nTAB CLOSEALLOTHERS\nURL GOTO=coffefaucet.com/?r=koks1970@gmail.com');
     if(iimPlayCode(t0+'TAG POS=1 TYPE=INPUT:TEXT ATTR=ID:adcopy_response')<0){
         iimPlayCode('URL GOTO=coffefaucet.com/?r=koks1970@gmail.com');}
     solve();
     iimPlayCode('URL GOTO=about:home');
     weit(3);}

if(Number(usafaucet)>=1){
 /*********************usafaucet.tk 60 минут************************************/
     iimPlayCode('CLEAR\nTAB CLOSEALLOTHERS\nURL GOTO=usafaucet.tk/index.php?id=20545');
     iimPlayCode('URL GOTO=usafaucet.tk/index.php?id=20545');weit(3);
     iimPlayCode(t0+'TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:address_form ATTR=NAME:email CONTENT='+bit+'\nTAG POS=1 TYPE=BUTTON FORM=NAME:address_form ATTR=ID:go');
     a=iimPlayCode(t0+'TAG POS=1 TYPE=* ATTR=TXT:You*can*claim*again*in*');
     b=iimPlayCode(t0+'TAG POS=1 TYPE=H2 ATTR=TXT:Faucet*under*maintenance.*Please*check*back*');
     if(a<0 || b<0) solve();
     iimPlayCode('URL GOTO=about:home');
     weit(3);}

restart();}

/***************************************************/
function solve(){ 
   for(q=0; q<3; q++){ 
      if(iimPlayCode(t0+'TAG POS=1 TYPE=* ATTR=TXT:You*can*claim*again*in*')>0 || iimPlayCode(t0+'TAG POS=1 TYPE=H2 ATTR=TXT:Faucet*under*maintenance.*Please*check*back*')>0 || iimPlayCode(t0+'TAG POS=1 TYPE=* ATTR=TXT:You*have*to*wait*')>0 || iimPlayCode(t0+'TAG POS=1 TYPE=STRONG ATTR=TXT:You*can*get*a*reward*again*')>0 || iimPlayCode(t0+'TAG POS=1 TYPE=DIV ATTR=CLASS:*alert*alert-danger*&&TXT:This*faucet*exceeded*safety*limits!*')>0) break;
   for(z=0; z<15; z++){ 
         iimPlayCode(t0+'TAG POS=1 TYPE=INPUT:BUTTON FORM=ID:MainForm ATTR=ID:*');        //moonlite.co.in moondoge.co.in
         iimPlayCode(t0+'TAG POS=1 TYPE=INPUT:BUTTON FORM=ID:dd2eGG26 ATTR=ID:*');        //moonbit.co.in
      /* Если грязная капча обновляем */
      if(iimPlayCode(t0+'TAG POS=1 TYPE=INPUT:TEXT ATTR=ID:adcopy_response')<0 || iimPlayCode(t0+'TAG POS=1 TYPE=IMG ATTR=ID:adcopy-puzzle-image-image')>0) reload();
      else{ z=100;
   for(w=0; w<=60; w++){ 
       //iimPlayCode(t0+'TAG POS=1 TYPE=iframe ATTR=ID:adcopy-unique*');
      /* Ищем капчу с тегом 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=DIV ATTR=ID:*videoPoster&&STYLE:display:<SP>block;*')>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=AREA ATTR=ONCLICK:no_click()&&COORDS:168,105,263,137&&SHAPE:rect')>0 || iimPlayCode(t0+'FRAME F='+w+'\nTAG POS=1 TYPE=AREA ATTR=ONCLICK:no_click()&&COORDS:156,75,238,103&&SHAPE:rect&&TXT:')>0 || iimPlayCode(t0+'FRAME F='+w+'\nTAG POS=1 TYPE=AREA ATTR=ONCLICK:don_click()&&COORDS:152,116,286,141&&SHAPE:rect&&TXT:')>0 || iimPlayCode(t0+'FRAME F='+w+'\nTAG POS=1 TYPE=DIV ATTR=ID:typein_area')>0 || iimPlayCode(t0+'FRAME F='+w+'\nTAG POS=1 TYPE=DIV ATTR=ID:optout')>0 || iimPlayCode(t0+'FRAME F='+w+'\nTAG POS=1 TYPE=DIV ATTR=ID:captcha')>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=DIV ATTR=ID:*videoPoster&&STYLE:display:<SP>block;*')>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){
      if(iimPlayCode(t0+'FRAME F='+w+'\nTAG POS=1 TYPE=DIV ATTR=ID:*videoPoster&&STYLE:display:<SP>block;*')>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) weit(15); w1=w+1
         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('ONDOWNLOAD FOLDER='+Path+' FILE=a.jpg WAIT=YES\nFRAME F='+w1+'\nTAG POS=1 TYPE=DIV ATTR=ID:Stage_botox_pre_1_bfcm_1_TI&&CLASS:Stage_botox_pre_1_bfcm_1_TI_id CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT');
         iimPlayCode(t0+'TAG POS=1 TYPE=A ATTR=TXT:Return*Page'); flesh();}
else if(iimPlayCode(t0+'FRAME F='+w+'\nTAG POS=1 TYPE=AREA ATTR=ONCLICK:no_click()&&COORDS:168,105,263,137&&SHAPE:rect')>0 || iimPlayCode(t0+'FRAME F='+w+'\nTAG POS=1 TYPE=AREA ATTR=ONCLICK:no_click()&&COORDS:156,75,238,103&&SHAPE:rect&&TXT:')>0 || iimPlayCode(t0+'FRAME F='+w+'\nTAG POS=1 TYPE=AREA ATTR=ONCLICK:don_click()&&COORDS:152,116,286,141&&SHAPE:rect&&TXT:')>0 || iimPlayCode(t0+'FRAME F='+w+'\nTAG POS=1 TYPE=DIV ATTR=ID:typein_area')>0){
      if(iimPlayCode(t0+'FRAME F='+w+'\nTAG POS=1 TYPE=AREA ATTR=ONCLICK:no_click()&&COORDS:168,105,263,137&&SHAPE:rect')>0 || iimPlayCode(t0+'FRAME F='+w+'\nTAG POS=1 TYPE=AREA ATTR=ONCLICK:no_click()&&COORDS:156,75,238,103&&SHAPE:rect&&TXT:')>0 || iimPlayCode(t0+'FRAME F='+w+'\nTAG POS=1 TYPE=AREA ATTR=ONCLICK:don_click()&&COORDS:152,116,286,141&&SHAPE:rect&&TXT:')>0) weit(2);
         iimPlayCode('ONDOWNLOAD FOLDER='+Path+' FILE=a.jpg WAIT=YES\nFRAME F='+w+'\nTAG POS=1 TYPE=DIV ATTR=ID:typein_area CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT');weit(1); typein();}
      /* Если обычный канвас (капча с ровными буквами), сохраняем на комп и запускаем функцию canvas() */
else if(iimPlayCode(t0+'FRAME F='+w+'\nTAG POS=1 TYPE=DIV ATTR=ID:optout')>0 || iimPlayCode(t0+'FRAME F='+w+'\nTAG POS=1 TYPE=DIV ATTR=ID:captcha')>0){
      if(iimPlayCode(t0+'FRAME F='+w+'\nTAG POS=1 TYPE=DIV ATTR=ID:optout')>0) weit(2);
         iimPlayCode('ONDOWNLOAD FOLDER='+Path+' FILE=a.jpg WAIT=YES\nFRAME F='+w+'\nTAG POS=1 TYPE=DIV ATTR=ID:captcha CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT');weit(1); 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;}}}}

      /* Если (капча с ровными буквами), сохраняем на комп и запускаем функцию abbyy() или если ничего из верхнего не помогло*/
     if(w!=100 && txt.length<4){ 
           iimPlayCode(t0+'TAG POS=1 TYPE=AREA ATTR=SHAPE:rect&&COORDS:0,0,300,150&&ALT:&&TITLE:&&HREF:#'); weit(15);
           iimPlayCode(t0+'TAG POS=1 TYPE=A ATTR=ID:adcopy-page-return');
     if(iimPlayCode(t0+'TAG POS=1 TYPE=img ATTR=id:adcopy-ti-overlay&&SRC:*api.solvemedia.com/acmedia*')>0){ weit(3);
           iimPlayCode('ONDOWNLOAD FOLDER='+Path+' FILE=a.png WAIT=YES\nTAG POS=1 TYPE=img ATTR=id:adcopy-ti-overlay&&SRC:*api.solvemedia.com/acmedia* CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT');weit(1); abbyy();}
else if(iimPlayCode(t0+'TAG POS=1 TYPE=img ATTR=id:adcopy-ti-overlay&&SRC:*api-secure.solvemedia.com/acmedia*')>0){ weit(3);
           iimPlayCode('ONDOWNLOAD FOLDER='+Path+' FILE=a.png WAIT=YES\nTAG POS=1 TYPE=img ATTR=id:adcopy-ti-overlay&&SRC:*api-secure.solvemedia.com/acmedia* CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT');weit(1); abbyy();}
else if(iimPlayCode(t0+'TAG POS=1 TYPE=AREA ATTR=HREF:*api.solvemedia.com/papi/action?c=*')>0){ weit(3);
           iimPlayCode('ONDOWNLOAD FOLDER='+Path+' FILE=a.png WAIT=YES\nTAG POS=1 TYPE=AREA ATTR=HREF:*api.solvemedia.com/papi/action?c=* CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT');weit(1); abbyy();}
else if(iimPlayCode(t0+'TAG POS=1 TYPE=AREA ATTR=HREF:*api-secure.solvemedia.com/papi/action?c=*')>0){ weit(3);
           iimPlayCode('ONDOWNLOAD FOLDER='+Path+' FILE=a.png WAIT=YES\nTAG POS=1 TYPE=AREA ATTR=HREF:*api-secure.solvemedia.com/papi/action?c=* CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT');weit(1); abbyy();}
else if(iimPlayCode(t0+'TAG POS=1 TYPE=EMBED ATTR=ID:adcopy-puzzle-image-image')>0){ weit(3);
           iimPlayCode('ONDOWNLOAD FOLDER='+Path+' FILE=a.jpg WAIT=YES\nTAG POS=1 TYPE=EMBED ATTR=ID:adcopy-puzzle-image-image CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT'); EMBED();}
else if(iimPlayCode(t0+'TAG POS=1 TYPE=OBJECT ATTR=ID:adcopy-puzzle-image-image')>0){ weit(3);
           iimPlayCode('ONDOWNLOAD FOLDER='+Path+' FILE=a.jpg WAIT=YES\nTAG POS=1 TYPE=OBJECT ATTR=ID:adcopy-puzzle-image-image CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT'); EMBED();}
         }

      if(txt!=='' && txt.length>4){ 
         antibot();
      if(iimPlayCode(t0+'TAG POS=1 TYPE=H2 ATTR=TXT:Claim<SP>free<SP>Lisk*')>0){iimPlayCode(t0+'TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=NAME:address CONTENT='+lisk);}
      if(iimPlayCode(t0+'TAG POS=1 TYPE=H4 ATTR=TXT:Submit<SP>Your<SP>Ethereum<SP>Wallet<SP>Address<SP>To<SP>Beg*')>0 || iimPlayCode(t0+'TAG POS=1 TYPE=H2 ATTR=TXT:Claim<SP>free<SP>Ethereum*')>0){iimPlayCode(t0+'TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=NAME:address CONTENT='+ethereum);iimPlayCode(t0+'TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:http://www.etherfaucet.net/ ATTR=NAME:address CONTENT='+ethereum);}
      if(iimPlayCode(t0+'TAG POS=1 TYPE=H3 ATTR=TXT:Welcome<SP>to<SP>Coffefaucet.com')>0 || iimPlayCode(t0+'TAG POS=1 TYPE=H1 ATTR=TXT:Sun<SP>Faucet')>0 || iimPlayCode(t0+'TAG POS=1 TYPE=H1 ATTR=TXT:Jupiter<SP>Faucet')>0){iimPlayCode(t0+'TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=ID:username CONTENT='+email);}
         iimPlayCode(t0+'TAG POS=1 TYPE=INPUT:TEXT ATTR=ID:adcopy_response CONTENT="'+txt+'"');
         txt='';
         bonus=null;
         iimPlayCode(t0+'TAG POS=1 TYPE=INPUT:SUBMIT FORM=* ATTR=*\nWAIT SECONDS=#DOWNLOADCOMPLETE#');
         iimPlayCode(t0+'TAG POS=1 TYPE=BUTTON FORM=NAME:NoFormName ATTR=TXT:*\nWAIT SECONDS=#DOWNLOADCOMPLETE#');weit(6);
         iimPlayCode(t0+'TAG POS=1 TYPE=DIV ATTR=CLASS:success-message extract=txt');
         bonus=iimGetExtract().match(/\d+/);} else reload();
        if(Number(bonus)>0 || iimPlayCode(t0+'TAG POS=1 TYPE=P ATTR=TXT:Congratulations<SP>you<SP>have<SP>won*Satoshis*')>0 || iimPlayCode(t0+'TAG POS=1 TYPE=DIV ATTR=TXT:You<SP>got*free<SP>satoshi!')>0 || iimPlayCode(t0+'TAG POS=1 TYPE=P ATTR=TXT:Congratulations!*has*been*adde*')>0 || iimPlayCode(t0+'TAG POS=1 TYPE=DIV ATTR=CLASS:alert<SP>alert-success&&TXT:*was*sent*to*')>0 || iimPlayCode(t0+'TAG POS=1 TYPE=DIV ATTR=ROLE:alert&&CLASS:alert<SP>alert-success&&TXT:*was*sent*to*')>0 || iimPlayCode(t0+'TAG POS=1 TYPE=P ATTR=TXT:Congrats!*You*have*claimed*')>0) q=10;}}

         /***-= Обрабатываем флеш капчу =-***/
function abbyy(){  iimDisplay('Обрабатываем флеш капчу');
iimPlayCode('TAB OPEN\nTAB T=2\nURL GOTO="'+kap+'"');
for(skz=0; skz<=8; skz++){
        iimDisplay('OCR'); weit(10);
        iimPlayCode('URL GOTO=file:///'+Path+'captcha.txt');
    if(iimPlayCode('SET !TIMEOUT_STEP 1\nTAG POS=1 TYPE=div ATTR=ID:errorTitle&&TXT:Файл*не*найден')!=-1){
    if(iimPlayCode('SET !TIMEOUT_STEP 1\nTAG POS=1 TYPE=div ATTR=ID:errorTitle&&TXT:Файл*не*найден')<0) break;}}
        iimPlayCode('TAG POS=1 TYPE=* ATTR=TXT:* EXTRACT=TXT');
        a=iimGetLastExtract();
    if(a.lastIndexOf('nter ')>0) txt=a.split('nter ')[1];
    if(a.lastIndexOf('nters ')>0) txt=a.split('nters ')[1];
    if(a.lastIndexOf('nter. ')>0) txt=a.split('nter. ')[1];
    if(a.lastIndexOf(';')>0) txt=a.split(';')[1];
    if(a.lastIndexOf('=')>0) txt=a.split('=')[1];
    if(a.lastIndexOf(':')>0) txt=a.split(':')[1];
    if(a.lastIndexOf('-')>0) txt=a.split('-')[1];
iimPlayCode('TAB CLOSE');
iimPlayCode('FILEDELETE NAME='+Path+'a.png\nFILEDELETE NAME='+Path+'captcha.txt');}

         /***-= Обрабатываем флеш капчу =-***/
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();
       if(txt.lastIndexOf('=')>0) txt=txt.split('=')[1];
       if(txt.lastIndexOf(':')>0) txt=txt.split(':')[1];
       if(txt.lastIndexOf('-')>0) txt=txt.split('-')[1];
       txt=txt.replace(/\W/gi,"").replace(/[0-9]/gi,"").replace(/_/gi,"");
       iimPlayCode('TAB CLOSE');
        iimPlayCode('FILEDELETE NAME='+Path+'a.jpg');}

         /***-= Обрабатываем флеш капчу =-***/
function typein(){ iimDisplay('Обрабатываем флеш капчу');
       iimPlayCode('TAB OPEN\nTAB T=2\nURL GOTO="'+kap+'"');
   var Cc=Components.classes, Ci=Components.interfaces, args=['C:\\CapNum\\solve\\typein.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);
       txt=txt.replace(/\W/gi,"").replace(/[0-9]/gi,"").replace(/_/gi,"");
       iimPlayCode('TAB CLOSE');
        iimPlayCode('FILEDELETE NAME='+Path+'a.jpg');}

         /***-= Обрабатываем EMBED капчу =-***/
function EMBED(){ iimDisplay('Обрабатываем EMBED капчу');
       iimPlayCode('TAB OPEN\nTAB T=2\nURL GOTO="'+kap+'"');
   var Cc=Components.classes, Ci=Components.interfaces, args=['C:\\CapNum\\solve\\EMBED.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);
       txt=txt.replace(/\W/gi,"").replace(/[0-9]/gi,"").replace(/_/gi,"");
       if(txt=="MaxPoer"){txt="MaxPower"};
       if(txt=="TennisRaule"){txt="TennisRacket"};
       if(txt=="allCcun"){txt="BasketballCourt"};
       if(txt=="Hm"){txt="HockeyNet"};
       if(txt=="snPcles"){txt="SkiPoles"};
       if(txt=="HcclePurl"){txt="HockeyPuck"};
       if(txt=="BaseballEa"){txt="BaseballBat"};
       iimPlayCode('TAB CLOSE');
       iimPlayCode('FILEDELETE NAME='+Path+'a.jpg');}

         /***-= Обрабатываем канвас капчу =-***/
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);
       txt=txt.replace(/\W/gi,"").replace(/[0-9]/gi,"").replace(/_/gi,"");
       if(txt=="COme"){txt="Collme"};
       iimPlayCode('TAB CLOSE');
       iimPlayCode('FILEDELETE NAME='+Path+'a.jpg');}

          /***-= Удаляем куки =-***/
 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);}}weit(3);}

         /***-= Обновление капчи =-***/
function reload(){iimPlayCode(t3+'TAG POS=1 TYPE=IMG ATTR=SRC:*solvemedia.com/media/reload*.gif'); weit(1);}

         /***-= Функция перезагрузки браузера =-***/
function restart(){ iimDisplay('Перезагрузка браузера');
    iimPlayCode('CLEAR'); weit(10);
    var Cc=Components.classes, Ci=Components.interfaces, args=[''];
    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:\\FirefoxPortable\\start.bat');
    proc.init(file); proc.run(false, args, args.length);
    window.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
   .getInterface(Components.interfaces.nsIWebNavigation)
   .QueryInterface(Components.interfaces.nsIDocShellTreeItem)
   .rootTreeItem
   .QueryInterface(Components.interfaces.nsIInterfaceRequestor)
   .getInterface(Components.interfaces.nsIDOMWindow)
    .document.getElementById('menu_FileQuitItem').click()
}

function antibot(){ 
    for(i=1; i<=3; i++){ 
        iimPlayCode("SET !TIMEOUT_STEP 0\nTAG POS="+i+" TYPE=P ATTR=TXT:▓█►<SP>I'M<SP>NOT<SP>A<SP>BOT<SP>◄█▓");
        }
    }

         /***-= Ожидание =-***/
function weit(s){iimPlayCode('WAIT SECONDS='+s);}


батник для перезапуска
скрытый текст

Выделить код

Код:

timeout 30 > NUL
SET pathToFirefox=C:\FirefoxPortable
erase /F /Q %pathToFirefox%\Data\profile\*.sqlite
erase /F /Q %pathToFirefox%\Data\profile\*.sqlite-shm
erase /F /Q %pathToFirefox%\Data\profile\*.sqlite-wal
erase /F /Q %pathToFirefox%\Data\profile\sessionstore.js
erase /F /Q /S %pathToFirefox%\Data\profile\cache2
erase /F /Q /S %pathToFirefox%\Data\profile\OfflineCache
erase /F /Q /S %pathToFirefox%\Data\profile\safebrowsig
erase /F /Q /S %pathToFirefox%\Data\profile\startupCache
erase /F /Q /S %pathToFirefox%\Data\profile\thumbnails
timeout 30 > NUL
START %pathToFirefox%\FirefoxPortable.exe imacros://run/?m=ваш скрипт.js
exit



а где взять файл EMBED.vbs

Отредактировано InfSub (14-05-2017 20:01:25)

Отсутствует

 

№107907-09-2016 18:28:36

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

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

Eltar пишет:

В случае ошибки повторяем функцию balance(); Так максимум пять раз.

А что потом? После пятого раза?... Нет, так не годится.
Надо по анологии с тем, что было в посте выше. То есть, если сайт не открылся, то выполнится альтернативное действие которое пропишете. Скрипт продолжит выполнение как будто ошибки и не было, а на дисплее будет отображён симулированный "Баланс 100". То есть вот так:

скрытый текст
http://funkyimg.com/i/2gqsV.png

Это если выполняется обычный запрос, вот такой:
скрытый текст

Выделить код

Код:

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


Но так оно работает для обычного запроса. А как это прикрутить к ГЕТ-запросу?
Я пробовал так:
скрытый текст

Выделить код

Код:

 try{balance();} catch(e) {balance=100;} 

   var balance=b.match(/Balance.+satoshi/); balance=balance[0].replace(/\D+/g, ""); iimDisplay('Баланс '+balance);
     function balance(){
   var CC=Components.Constructor;
   var a=CC("@mozilla.org/xmlextras/xmlhttprequest;1")();
       a.open('GET','http://www.promisefaucet.ml',false);
       a.send(null);
       b=a.response;
       return b;}
 


Так вот, если отключаю интернет (специально, чтоб проверить), то оно выдаёт ошибку такую:
скрытый текст
http://funkyimg.com/i/2gqsw.png

Что не так? Как исправить?

Отредактировано dvitkovs (07-09-2016 18:30:26)

Отсутствует

 

№108007-09-2016 20:07:53

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

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

Hamzat пишет:

Для этих вещей уже давно придумали асинхронные запросы, пользуйтесь.

удалено, избыточное цитирование
Можете выложить пример скрипта для асинхронного гет-запроса для какого-нибудь крана, для проверки баланса?

InfSub

Отредактировано dvitkovs (08-09-2016 12:20:59)

Отсутствует

 

№108107-09-2016 21:26:22

denbal
Участник
 
Группа: Members
Зарегистрирован: 23-08-2016
Сообщений: 17
UA: Chrome 52.0

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

удалено, флуд, п.п.: 2.6  Многократно поднимать тему, если на поставленный вопрос ответ не был получен своевременно...

InfSub

Отсутствует

 

№108208-09-2016 09:10:10

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

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

dvitkovs пишет:

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

Выделить код

Код:

try{balance();} catch(e) {balance=100;} 

   var balance=b.match(/Balance.+satoshi/); balance=balance[0].replace(/\D+/g, ""); iimDisplay('Баланс '+balance);
     function balance(){
   var CC=Components.Constructor;
   var a=CC("@mozilla.org/xmlextras/xmlhttprequest;1")();
       a.open('GET','http://www.promisefaucet.ml',false);
       a.send(null);
       b=a.response;
       return b;}


Так вот, если отключаю интернет (специально, чтоб проверить), то оно выдаёт ошибку

У вас в данном случае ругается на строку

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

Выделить код

Код:

var balance=b.match(/Balance.+satoshi/); balance=balance[0].replace(/\D+/g, ""); iimDisplay('Баланс '+balance);


т.к. переменная b функцией balance() не возвращается.
Надо приблизительно так
скрытый текст

Выделить код

Код:

try{balance();
   var balance=b.match(/Balance.+satoshi/); balance=balance[0].replace(/\D+/g, "");
} catch(e) {var balance=100;} 
 iimDisplay('Баланс '+balance);
     function balance(){
   var CC=Components.Constructor;
   var a=CC("@mozilla.org/xmlextras/xmlhttprequest;1")();
       a.open('GET','http://www.promisefaucet.ml',false);
       a.send(null);
       b=a.response;
       return b;}

Отсутствует

 

№108308-09-2016 09:49:44

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

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

dvitkovs

А что потом? После пятого раза?... Нет, так не годится.

После пятого повтора в теории скрипт должен идти дальше. Если не срабатывает, я бы строку, на которую ругается скрипт вставил бы в try:

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

Выделить код

Код:

try{Строка с ошибкой}catch(err){Альтернативное действие}


Вариант Дока подошел?

Отредактировано Eltar (08-09-2016 09:50:43)

Отсутствует

 

№108408-09-2016 12:07:24

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

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

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

Добавлено 08-09-2016 12:07:48

Eltar пишет:

Вариант Дока подошел?

Да.

Отредактировано dvitkovs (08-09-2016 12:07:48)

Отсутствует

 

№108508-09-2016 12:36:13

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

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

dvitkovs, Док ,
Дока у нас красавчик ))) :) Все знает )) Ходячая энциклопедия с практическим применнеим))
Так как, ребятки, у нас с http://bityom.com/ дела обстоят? Решил кто-нибудь как на вторую капчу с логином клацнуть? Кран пипец какой доходный! 600 сат./час!

Отредактировано Eltar (08-09-2016 12:39:21)

Отсутствует

 

№108608-09-2016 13:34:49

Jurik45
Участник
 
Группа: Members
Зарегистрирован: 14-03-2016
Сообщений: 42
UA: Firefox 46.0

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

Всем привет.

Eltar пишет:

Решил кто-нибудь как на вторую капчу с логином клацнуть?

Не выходить, заходить отмечаться через какое-то время, пока идёт таймер - выходить.

Отредактировано Jurik45 (08-09-2016 13:35:31)

Отсутствует

 

№108708-09-2016 16:00:05

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

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

Eltar пишет:

Решил кто-нибудь как на вторую капчу с логином клацнуть?

А кто мешает так сделать

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

Выделить код

Код:

var f=window.document.querySelector('div[id="recaptcha2"]')
var f2=f.querySelector('iframe')
f2.name = 'framelogin'


и потом обращайтесь к рекаптче по имени фрейма

Выделить код

Код:

FRAME NAME="framelogin"

Отсутствует

 

№108808-09-2016 21:45:25

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

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

Hamzat пишет:

dvitkovs

Здравствуйте! Подскажите, как добавить комбинацию  try{}catch(error){} к ГЕТ запросу для определения баланса?

Для этих вещей уже давно придумали асинхронные запросы, пользуйтесь.

А как пользоваться?..
Конечно, в асинхронных гет-запросах есть преимущество - это запрос без ожидания ответа от сервера. Т.е. скрипт создал объект, а объект послал запрос на сервер. При этом скрипт продолжает выполняться дальше и не ждет ответа от сервера. В какой-то момент данные вернуться.
Но есть и сложности. В частности: асинхронный запрос сложнее синхронного запроса в том, что надо сначала подготовить сам запрос, а потом ловить момент, когда данные придут с сервера.
Преимущества же асинхронного запроса ещё и в том, что он намного удобнее для пользователя и не тормозит работу браузера, в частности аймакроса (чего не скажешь про обычный синхронный гет-запрос).

Но есть ли примеры ява-скрипта с асинхронным гет-запросом? Где найти? Есть у вас? Покажите хоть один. Например, как определять баланс крана асинхронным гет-запросом?
Или подскажите, как переделать вот этот синхронный гет-запрос в асинхронный:

скрипт синхронного гет-запроса для определения баланса крана

Выделить код

Код:

try{balance();
   var balance=b.match(/Balance.+satoshi/); balance=balance[0].replace(/\D+/g, "");
} catch(e) {var balance=100;} 
 iimDisplay('Баланс '+balance);
     function balance(){
   var CC=Components.Constructor;
   var a=CC("@mozilla.org/xmlextras/xmlhttprequest;1")();
       a.open('GET','http://www.promisefaucet.ml',false);
       a.send(null);
       b=a.response;
       return b;}


одним изменением аргумента false на true явно не обойтись

Отредактировано dvitkovs (08-09-2016 22:19:38)

Отсутствует

 

№108908-09-2016 23:44:25

dvomaks
Участник
 
Группа: Members
Зарегистрирован: 01-07-2016
Сообщений: 33
UA: Firefox 48.0

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

dvitkovs пишет:

Для этих вещей уже давно придумали асинхронные запросы, пользуйтесь.

асинхронные запросы не совсем для этих вещей придумали, и в ситуации с проверкой балансе асинхронный запрос вообще никак не подойдет.
если обьяснять на пальцах то асинхронный запрос (и не обязательно это гет или пост запрос, асинхронно может выполнится любая функция) это когда прописана функция калбека, которая сработает после удачного выполнения запроса(или функции), и это совсем не означает что они будут выполнятся параллельно.

Отсутствует

 

№109008-09-2016 23:48:50

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

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

Док, спасибо за совет с bityom. Очень помогли.

Отредактировано Eltar (08-09-2016 23:53:43)

Отсутствует

 

№109109-09-2016 12:14:44

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

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

dvomaks
Та собственно говоря понятно, что есть сложности относительно внедрения асинхронного запроса для определения баланса кранов с помощью аймакроса. И не всё тут так просто, как об этом пишет Hamzat. Но ведь это его сообщение:

Hamzat пишет:

Для этих вещей уже давно придумали асинхронные запросы, пользуйтесь.

сообщение написал - пользуйтесь, а как пользоваться - не уточняет.

P.S. вообще-то и синхронный гет-запрос работает неплохо, единственное что не очень хорошо, это то, что скрипт зависает на время ожидания ответа. Ну и соответственно время тоже расходуется впустую на само это ожидание. Хотя там 1-1,5 секунды всего лишь, но всё таки.

Отсутствует

 

№109209-09-2016 12:34:26

Hamzat
Участник
 
Группа: Members
Зарегистрирован: 30-03-2015
Сообщений: 326
UA: Chrome 52.0

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

dvomaks

асинхронные запросы не совсем для этих вещей придумали, и в ситуации с проверкой балансе асинхронный запрос вообще никак не подойдет.

Давайте по рассуждаем, почему он не подойдет? Вот самый простой пример асинхронного запроса

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

Выделить код

Код:

function balance() {
    var CC=Components.Constructor;
    var xhr = CC("@mozilla.org/xmlextras/xmlhttprequest;1")();
    xhr.open('GET' , 'http://www.promisefaucet.ml' , true);
    xhr.send();
    xhr.onreadystatechange = function() {
        if (xhr.readyState != 4) return;
        if (xhr.status != 200) {
            html  = xhr.status + ': ' + xhr.statusText
        } else {
            html = xhr.responseText;
        }
    };
};
balance()
iimPlayCode('wait seconds=5');
alert(html)


Пример не очень, но кому надо тот сделает нормально.

означает что они будут выполнятся параллельно.

О какой параллельности идет речь? И причем тут она вообще, человек спрашивает как использовать конструкция try catch для гет запроса, так я говорю что для XMLHttpRequest() их не использует, вы когда нибудь видели такое? Я, лично нет. О том как работают асинхронные запроса какие бы то они не были и так все знают.


iMacros скрипты на заказ!

Отсутствует

 

№109309-09-2016 13:31:13

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

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

Hamzat
а зачем там задержка 5-ти секундная?

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

Выделить код

Код:

iimPlayCode('wait seconds=5');


чтоб скрипт успел ответ получить? так это ж ерунда получается... :(
Гетом мы и делаем запрос для того чтоб минимизировать время на проверку баланса. Чтоб драгоценные секунды не тратить впустую, когда их нужно на другой кран пустить, на котором есть баланс.
Вот было б здорово, еслиб асинхронный гет-запрос определял баланс крана  по принципу: послал запрос на кран и пошел дальше работать, то есть посылать запросы на другие краны, и если на каком-то кране окажется балан положительный, то включается гадание капчи и сбор сатошей. Потом переход к следущему крану на котором положительный баланс сатош и взятие его. Если же такого не оказывается, то продолжается дальше по кругу проверка всех кранов из списка, до тех пор пока не появится положительный баланс на одном (или нескольких) из них.
То есть получается, что асинхронный гет посылает паралельные запросы на разные краны, не дожидаясь ответа, а когда ответ приходит (если приходит), то скрипт подключается к данному крану от которого пришёл ответ с положительным балансом. Примерно так. :)

Отсутствует

 

№109409-09-2016 14:59:40

Hamzat
Участник
 
Группа: Members
Зарегистрирован: 30-03-2015
Сообщений: 326
UA: Chrome 52.0

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

dvitkovs

чтоб скрипт успел ответ получить? так это ж ерунда получается... :(

Это я поставил это для примера, и явно написал кому нужно тот сделает так как ему нужно, за время ожидание ответа сервера вы можете делать в скрипте все что угодно, т.е допустим послать на все краны запросы с проверкой и потом посещать те которые имеет положительный, добавьте туда обработку ошибок и все такое и пользуйтесь в своих целях. Еще раз я лишь привел самый простой пример асинхронного запроса, я более скажу он не совсем правильный, а далее уже исходя из него подстройте под себя, я кранами не пользуюсь поэтому готового примера не имею, если был был то мне не жалко было бы поделиться.

P.S Думаю модератор не будет против. вот ссылка на сайт где в понятном форме написано про ajax

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


iMacros скрипты на заказ!

Отсутствует

 

№109515-09-2016 13:14:44

maloiprod
Участник
 
Группа: Members
Зарегистрирован: 21-06-2015
Сообщений: 20
UA: Chrome 53.0

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

dvitkovs
удалено, избыточное цитирование
Вообще такой бред тут пишите.
Вы говорите максимально минимизировать время?
Вам или придется полностью грузить страницу это в среднем если с adblock 15 сек через прокси (беру в рассчет именно среднее время по всем кранам),или же отправить синхронный запрос где повиснет скрипт на 3-5 сек?Разница очивидна!За 1 секунду вы не узнаете результат в любом случае.Если вам много 3-5 сек,то во время запроса отрубайте прокси это отминусует 1 сек=D
Так же какой смысл делать каждый раз запросы на проверку баланса?Есть такое понятие как ОПТИМИЗАЦИЯ !!!
В случае если баланс крана нулевой или менее минимальной раздачи кран при сборе выдаст стандартную для почти всех кранов faucetbox фразу 'Insufficient funds',так от нее и пляшите.На кране админ может просто тупо поставть js который будет генерировать 'баланс' по кукам (чтоб люди видели что на кране всегда есть баланс),и уже с такого крана ты баланс не вытянишь ни гет не прост запросом.
По этому просто тупо собирай,если попался кран и при сборе выдал Insufficient funds,то отключи этот кран до следующего повтора цикла:
Например так Ж

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

Выделить код

Код:

//список кранов
var start = 1;
var end = 10;
var url1 = ['http://cran','1'];
var url2 = ['http://cran','2'];
var url3 = ['http://cran','3'];

for(;start<end;start++){

if(url1[1] == 1){
//тут выполняется код сбора крана
//code code code
//а в конце после нажатия кнопки проверка на фразу что то типо этого
if(iimPlayCode('SET !TIMEOUT_STEP 0\nTAG POS=1 TYPE=P ATTR=TXT:*Insufficient<SP>funds*')>0){
//если на кране нет  баланса то выполнится этот код
//и тут как раз ты сбрасываешь переменую из массива url1[1] которая имеет значение 1,тебе нужно ее изменить на 0 
url1[1] = 0;//все теперь кран не сработает до конца цикла или же пока ты его не включишь где нибудь в коде.
}
}
}


код публикуется в тегах code внутри спойлера

Этот пример накидал не как истину а так чтоб примерно поняли как было бы проще сделать.

InfSub

Отсутствует

 

№109615-09-2016 23:57:15

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

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

maloiprod, поддерживаю! Минимальное расстояние от одной точки до второй должна быть прямая. А решение любой задачи должно быть простым. Но с другой стороны, у кого какой масштаб проекта. У кого-то написано 2 крана, у кого-то 22, у кого-то 102. Тот, у кого 102 очень ценит время на заход на сайт просто для проверки баланса крана. И если есть возможность сократить время проверки баланса с 5 секунд до 1, а это, как ни крути, в 5 раз, нужно это сделать. Тогда, возможно, кратчайшим расстоянием между двумя точками станет наконец точка.

Разбираюсь сейчас в регулярных выражениях, хотел бы узнать одну вещь у гуру js. Нужно проверить наличие арифметического действия в массиве. Ищу выражение "цифра+цифра", в примере "5+4". Подскажите пожалуйста почему у меня результат false? Хочется чтобы был true )))

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

Выделить код

Код:

// так пробовал:
var arr_captcha0 = ['a-b','5+4','one'];
alert(/\d[0-9]\+\d[0-9]/.test(arr_captcha0)); // false
alert(/\d[0-9]+\d[0-9]/.test(arr_captcha0)); // false

alert(/\D[0-9]\+\D[0-9]/.test(arr_captcha0)); // false
alert(/\D[0-9]+\D[0-9]/.test(arr_captcha0)); // true - вроде правильно

// НО:
var arr_captcha0 = ['a-b','5-4','one'];
alert(/\D[0-9]-\D[0-9]/.test(arr_captcha0)); // false

Отредактировано Eltar (15-09-2016 23:58:54)

Отсутствует

 

№109716-09-2016 00:22:35

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

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

Eltar
потому что, вы пытаетесь применить строковую функцию к массиву, а не к одному из его элементов


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

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

Отсутствует

 

№109816-09-2016 12:48:30

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

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

InfSub
Я хотел выполнить поиск по всему массиву  сразу просто. А в данном случае лучше использовать поиск по строке для каждого элемента массива? Хотя, если в массиве будет не только строки, но и цифры, булейные объекты.... будет не совсем кооректно, наверное. Или загнать все элементы массива в строку и выполнить поиск в этой строке?.. Нет ли метода или приема, который искал бы строку во всем массиве сразу?

Отсутствует

 

№109916-09-2016 13:30:58

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

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

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


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

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

Отсутствует

 

№110016-09-2016 14:41:08

Hamzat
Участник
 
Группа: Members
Зарегистрирован: 30-03-2015
Сообщений: 326
UA: Chrome 53.0

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

Ребята, кто работает на кранах, есть ли смысл так, чтобы обновлять каптчу (рекаптча 2) пока не появиться картинки которые нужно один раз выбрать (которые не обновляются после выбора), кто пробовал? Применяет ли гугл какие то санкции по этому поводу, и вообще как с этим дела обстоят?


iMacros скрипты на заказ!

Отсутствует

 

№110116-09-2016 15:07:55

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

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

InfSub, спасибо!
Hamzat, с каждым обновлением капчи без меняющихся картинок будут попадаться все реже, пока перестанут попадаться вообще через полчаса-час, если не быстрее.

Отредактировано Eltar (16-09-2016 15:09:24)

Отсутствует

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

Board footer

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