humanemulator.net — справка. Продукт, демо и покупка — на хуманэмулятор.рф | Демо | Купить | API | лог изменений
К объекту 2captcha

recognize_click_captcha

recognize_click_captcha($filename,$textinstructions=""); - Распознать ClickCaptcha (в том числе ReCaptcha v2)

Функция на вход принимает параметры:

  • $filename – Путь к файлу
  • $textinstructions – Текстовые инструкции сотруднику

    После выполнения функции возвращаемое значение будет равно одному из двух :
  • результат – Результат распознавания или false если произошла ошибка

    Пример использования
    <?php
    $xhe_host = "localhost:7010";
    
    // подключим объект для управления эмулятором, если еще не подключен
    if (!isset($path))
      $path="../../../Templates/init.php";
    require($path);
    
    // начало
    echo "\n<font color=blue>twocaptcha->".basename (__FILE__)."</font>\n";
    
    // API ключ
    WEB::$twocaptcha->api_key="";
    
    // 1 
    echo "1. Перейдем на полигон : ";
    echo WEB::$browser->navigate("https://www.google.com/recaptcha/api2/demo")."\n";
    
    // 2
    echo("2. Нажмем я не робот : ");
    while (!DOM::$div->get_by_attribute("class","recaptcha-checkbox-checkmark",false,0)->is_visibled())sleep(1);
    echo $check = DOM::$div->get_by_attribute("class","recaptcha-checkbox-checkmark",false,0)->send_mouse_click(mt_rand(1,4),mt_rand(1,4))."\n";
    
    // 3
    echo "3. Сохраним картинку и вопрос :";
    while (!DOM::$image->get_by_src("www.google.com/recaptcha/api2/payload",false,1)->is_visibled())sleep(1);
    sleep(3);
    echo DOM::$image->screenshot_by_src("test\\tmp.jpeg","www.google.com/recaptcha/api2/payload",false,1) . "\n";
    // сохраним текст
    echo $describtion=explode("\n",DOM::$div->get_inner_text_by_attribute("class","imageselect-desc",false,1))[0];
    
    // 4 
    // преобразуемв UTF для отправки в сервис рукапчи
    $describtion=iconv("windows-1251","utf-8",$describtion);
    // распознаем капчу - как ту где нужно сделать клики
    $solution = WEB::$twocaptcha->recognize_click_captcha("test\\tmp.jpeg",$describtion);
    
    // 5
    echo "5. Кликнем по полученным координатам : \n\n";
    if (strpos($solution,"coordinates:")!=-1)
    {
    	$solution=str_replace("coordinates:","",$solution);
        $solution=str_replace(";",",",$solution);
    	$coords=explode(",",$solution);
        DOM::$image->get_by_src("test\\tmp.jpeg","www.google.com/recaptcha/api2/payload",false,1)->focus();
    	for ($i=0;$i<count($coords);$i+=2)
    	{	
    		$x=str_replace("x=","",$coords[$i])	;
    		$y=str_replace("y=","",$coords[$i+1]);
    		echo "click at (".$x."  ".$y.") : на картинке капчи : ";				
    		echo DOM::$image->get_by_src("recaptcha/api2/payload",false,1)->send_mouse_move($x,$y) . "\n";				
    		usleep(50000);
    		echo DOM::$image->get_by_src("recaptcha/api2/payload",false,1)->send_mouse_click($x,$y)."\n";
    		usleep(mt_rand(300000,1000000));
    	}
       echo "\n";
    }
    
    DOM::$btn->click_by_id("recaptcha-verify-button", "1");
    
    
    // конец
    echo "\n";
    
    // Quit
    WINDOW::$app->quit();
    ?>
    # Additional paths
    import sys
    sys.path.insert(0, '../../../Templates PY/')
    
    xhe_host = "127.0.0.1:7013"
    from xweb_human_emulator import *
    
    # начало
    echo("<hr><font color=blue>twocaptcha.xxxxxxxxx</font><hr>")
    
    # API ключ
    twocaptcha.api_key="448b2d538fef6c236092492a947af85b"
    
    # 1 
    echo("1. Перейдем на полигон : ")
    echo(browser.navigate("https://www.google.com/recaptcha/api2/demo"),"<br>")
    
    # 2
    echo("2. Нажмем я не робот : ")
    while not div.get_by_attribute("class","recaptcha-checkbox-checkmark",false,0).is_visibled():
        sleep(1)
    check=div.get_by_attribute("class","recaptcha-checkbox-checkmark",false,0).send_mouse_click(4,4)
    echo(check,"\n")
    
    # 3
    echo("3. Сохраним картинку и вопрос :")
    while not image.get_by_src("www.google.com/recaptcha/api2/payload",false,1).is_visibled():
    	sleep(1)
    
    sleep(3)
    echo(image.screenshot_by_src("test\\tmp.jpeg","www.google.com/recaptcha/api2/payload",false,1)," ")
    # сохраним текст
    desc=div.get_inner_text_by_attribute("class","imageselect-desc",false,1)
    desc = desc.split("\n")
    description=desc[0]+" "+desc[1];
    echo(description,"<br>")
    
    # распознаем капчу - как ту где нужно сделать клики
    solution=twocaptcha.recognize_click_captcha("test\\tmp.jpeg",description)
    
    # 5 coordinates:x=186,y=64;x=313,y=72;x=316,y=198
    echo("5. Кликнем по полученным координатам : \n\n")
    if solution.find("coordinates:")!=-1:
    	
    	solution=solution.replace("coordinates:","")
    	solution=solution.replace(";",",")
    	coords=solution.split(",")
    	img = image.get_by_src("www.google.com/recaptcha/api2/payload",false,1)
    	img .focus()
    	for i in range(0,len(coords),2):
    		x=coords[i].replace("x=","",)
    		y=coords[i+1].replace("y=","")
    		echo("click at ("+x+"  "+y+") : на картинке капчи : ")
    		echo(image.get_by_src("recaptcha/api2/payload",false,1).send_mouse_move(x,y)," ")
    		sleep(0.05)
    		echo(image.get_by_src("recaptcha/api2/payload",false,1).send_mouse_click(x,y),"\n")
    	#usleep(mt_rand(300000,1000000)))
    	echo("\n")
    
    # конец
    echo("<hr><br>")
    
    # Quit
    app.quit()
    #region using
    
    using System;
    using System.Diagnostics;
    using System.Collections.Generic;
    using System.Linq;
    using System.IO;
    using System.Text;
    using System.Threading;
    
    using XHE;
    using XHE.XHE_DOM;
    using XHE.XHE_System;
    using XHE.XHE_Window;
    using XHE.XHE_Web;
    
    #endregion
    
     class Program:XHEScript
     {
    	  static void Main(string[] args)
    	  {
    			// init XHE
    			server = "localhost:7010";
    			InitXHE();
    
    			// начало
    			echo("<hr><font color=blue>twocaptcha.recognize_click_captcha</font><hr>");
    				
    			// API ключ
    			twocaptcha.api_key="448b2d538fef6c236092492a947af85b";
    
    			// 1 
    			echo ("1. Перейдем на полигон : ");
    			echo (browser.navigate("https://www.google.com/recaptcha/api2/demo")+"<br>");
    
    			// 2
    			echo("2. Нажмем я не робот : ");
    			while (!div.get_by_attribute("class","recaptcha-checkbox-checkmark",0,"0").is_visibled()){sleep(1);}
                		
    			bool check=div.get_by_attribute("class","recaptcha-checkbox-checkmark",0,"0").send_mouse_click(4,4);
    			echo (check.ToString()+"\n");   
                
    			// 3
    			echo ("3. Сохраним картинку и вопрос :");
    			while (!image.get_by_src("www.google.com/recaptcha/api2/payload",0,"1").is_visibled()) {sleep(1);}
                sleep(3);
    			image.screenshot_by_src("test\\tmp.jpeg","www.google.com/recaptcha/api2/payload",0,"1");
    			// сохраним текст
                string sText = div.get_inner_text_by_attribute("class","imageselect-desc",0,"1");
    			string description=sText.Split('\n')[0];
                echo(description+"\n");
    
    			// 4 
    			// преобразуемв UTF для отправки в сервис рукапчи
    			//description=iconv("windows-1251","utf-8",description);
    			// распознаем капчу - как ту где нужно сделать клики
    			string solution=twocaptcha.recognize_click_captcha("test\\tmp.jpeg",description);
    
    			// 5
    			echo ("5. Кликнем по полученным координатам : \n\n");
    			if (solution.IndexOf("coordinates:")!=-1)
    			{
    				solution=solution.Replace("coordinates:","");
    				solution=solution.Replace(";",",");
    				string[] coords=solution.Split(',');
    				image.get_by_src("www.google.com/recaptcha/api2/payload",0,"1").focus();   
    				for (int i=0;i<coords.Length;i+=2)
    				{	
    					string x=coords[i].Replace("x=","");
    					string y=coords[i+1].Replace("y=","");
    					echo ("click at ("+x+"  "+y+") : на картинке капчи : ");				
    					echo (image.get_by_src("recaptcha/api2/payload",0,"1").send_mouse_move(Convert.ToInt32(x),Convert.ToInt32(y))+" ");				
    					sleep(5);
    					echo (image.get_by_src("recaptcha/api2/payload",0,"1").send_mouse_click(Convert.ToInt32(x),Convert.ToInt32(y))+"\n");
    					sleep(3);
    				}
    				echo("\n");
    			}
    
    
    			btn.click_by_id("recaptcha-verify-button", 1);
    			// конец
    			echo("\n\n");
    
    			app.quit();            
    	  }
    }
    // подключим функциональные объекты, если еще не подключен
    xhe_host="127.0.0.1:7010";
    echo=require("../../../Templates JS/init.js");
    
    // начало
    echo("<hr><font color=blue>twocaptcha.recognize_click_captcha</font><hr>");
    
    // 1 шаг
    echo("1. Перейдем на полигон : ");
    echo(browser.navigate("https://rpa-bot.ru/wiki/poligon/demo")+"\n");
    // 2 шаг
    echo("2. Вызовем метод recognize_click_captcha : \n");
    var result = twocaptcha.recognize_click_captcha("filename", "");
    echo(result+"\n");
    
    // конец
    echo("\n");
    
    // уведомляем среду что скрипт закончил работать
    app.quit();

    =============================================
    2captcha    Объекты    DOM  System  Vision  Web  Window        
    =============================================
    если что-то непонятно или необходимо узнать или считаете что надо добавить по работе этой функции, пишите в комментарии или на наш форум
    .