Web / rucaptcha
recognize_click_captcha
recognize_click_captcha($filename,$textinstructions); - распознать капчу где надо кликать куда либо (кликовая капча). Подробнее можно узнать здесьДля ее работы используются следующие поля объекта :
Функция на вход принимает параметры:
После отработки функция возвращает результат своей работы в скрипт :
Пример использования (PHP):
===============================================================
<?php $xhe_host = "127.0.0.1:7010"; // подключим объект для управления эмулятором, если еще не подключен if (!isset($path)) $path="../../../Templates/xweb_human_emulator.php"; require($path); // начало echo "<hr><font color=blue>rucaptcha->".basename (__FILE__)."</font><hr>"; // API ключ $rucaptcha->api_key=""; // 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",false,0)->is_visibled())sleep(1); echo $check=$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 (!$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)." "; // сохраним текст echo $describtion=explode("\n",$div->get_inner_text_by_attribute("class","imageselect-desc",false,1))[0]; // 4 // преобразуемв UTF для отправки в сервис рукапчи $describtion=iconv("windows-1251","utf-8",$describtion); // распознаем капчу - как ту где нужно сделать клики $solution=$rucaptcha->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); $image->get_by_src("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 $image->get_by_src("recaptcha/api2/payload",false,1)->send_mouse_move($x,$y)." "; usleep(50000); echo $image->get_by_src("recaptcha/api2/payload",false,1)->send_mouse_click($x,$y)."\n"; usleep(mt_rand(300000,1000000)); } echo "\n"; } $btn->click_by_id("recaptcha-verify-button", "1"); // конец echo "<hr><br>"; // Quit $app->quit(); ?>
Пример использования (Python):
===============================================================
# 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>rucaptcha.xxxxxxxxx</font><hr>") # API ключ rucaptcha.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=rucaptcha.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()
Пример использования (C#):
===============================================================
#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="127.0.0.1:7010"; InitXHE(); // начало echo("<hr><font color=blue>rucaptcha.recognize_click_captcha</font><hr>"); // API ключ rucaptcha.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=rucaptcha.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("<hr><br>"); app.quit(); } }
Пример использования (JS):
===============================================================
// подключим объект для управления эмулятором, если еще не подключен xhe_host="127.0.0.1:7010"; echo=require("../../../Templates JS/xweb_human_emulator.js"); // начало echo("<hr><font color=blue>rucaptcha.recognize_click_captcha</font><hr>"); // API ключ rucaptcha.api_key=""); // 1 шаг echo("1. Перейдем на полигон : "); echo(browser.navigate("http://www.humanemulator.net/poligon/image.html")+"<br>"); // 2 шаг echo("2. Распознать каптчу используя сервис rucaptcha.com (как выбор картинок) : "); echo(image.screenshot_by_src("tmp/1.jpg","like_image",false)+" "); echo(rucaptcha.recognize_click_captcha(debug.get_cur_script_folder()."tmp\\1.jpg","")+"\n"); // 3 шаг echo("3. Выведем информацию : "); echo(rucaptcha.get_last_capcha_filename()+" "); echo(rucaptcha.get_last_capcha_id()+" "); echo(rucaptcha.get_last_capcha_result()+"<br>"); // 4 шаг echo("4. Зададим парамтеры распозанняи по умолчанию : "); echo(rucaptcha.set_default_params(); // конец echo("<hr><br>"); // Quit app.quit();
=============================================
RuCaptcha Объекты DOM System Vision Web Window
=============================================
если что-то непонятно или необходимо узнать или считаете что надо добавить по работе этой функции, пишите в комментарии или на наш форум
.