Помогите применить recognize_click_captcha

Все вопросы касающиеся использования
программы можно задать здесь
Ответить
dmmmy3
Сообщения: 32
Зарегистрирован: 25 авг 2020, 14:37

Помогите применить recognize_click_captcha

Сообщение dmmmy3 » 28 июн 2021, 21:22

Скрипт взял со справки http://humanemulator.net/objects/WEB/ru ... aptcha.php подставил ключ рукапчи, но капча не гадается, что не так в скрипте, подскажите пожалуйста, может покороче как то можно использовать recognize_click_captcha

<?php

$xhe_host = "127.0.0.1:7015";

// init
require("../Templates/init.php");
$bUTF8Ver=true;
$PHP_Use_Trought_Shell=true;



$rucaptcha->api_key="36f08e06ae18c1da9b1549c0dea*****";
 

echo $browser->navigate("https://www.google.com/recaptcha/api2/demo")."<br>";
 

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

Аватара пользователя
Support
Site Admin
Сообщения: 1000
Зарегистрирован: 10 апр 2009, 17:45
Контактная информация:

Re: Помогите применить recognize_click_captcha

Сообщение Support » 29 июн 2021, 00:06

Изменился просто frame картинки где содержаться картинки.
// 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. Сохраним картинку и вопрос :";

// теперь тут и далее frame =2
while (!$image->get_by_src("www.google.com/recaptcha/api2/payload",false,2)->is_visibled())sleep(1);
sleep(3);
echo $image->screenshot_by_src("test\\tmp.jpeg","www.google.com/recaptcha/api2/payload",false,2)." ";
// сохраним текст
echo $describtion=explode("\n",$div->get_inner_text_by_attribute("class","imageselect-desc",false,2))[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,2)->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,2)->send_mouse_move($x,$y)." ";				
		usleep(50000);
		echo $image->get_by_src("recaptcha/api2/payload",false,2)->send_mouse_click($x,$y)."\n";
		usleep(mt_rand(300000,1000000));
	}
   echo "\n";
}

$btn->click_by_id("recaptcha-verify-button", "2");

Сделать короче не получится - логика тут простая - как только появляется чекбокс для клика то происходит по нему клик "class","recaptcha-checkbox-checkmark" . Далее у нас появляется 9 картинок и текст. Мы делаем скриншот и описание и отправляем его на сервис распознавания рукапча. Оттуда нам возвращаются координаты и мы по ним кликаем.

Можно обрабатывать такие капчи другой командой

// API ключ
$rucaptcha->api_key="ваш ключ";

// Пример : ReCaptcha V2
echo "1. Перейдем на полигон ReCaptcha V2: ";
echo $browser->navigate("https://www.google.com/recaptcha/api2/demo")."<br>";
sleep(1);
echo "2. Получение токена от сервиса распознования: ";
echo $result = $rucaptcha->recognize_recaptcha_v2($webpage->get_url(),"6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-");
echo "<br>";
echo "3. Используем полученный токен для обхода капчи: ";
// установим токен в скрытое поле g-recaptcha-response
$textarea->set_value_by_name("g-recaptcha-response", $result);
// нажимаем на кнопку Submit
$button->click_by_id("recaptcha-demo-submit");
echo "<br>";
// пауза 5 сек
sleep(5);

dmmmy3
Сообщения: 32
Зарегистрирован: 25 авг 2020, 14:37

Re: Помогите применить recognize_click_captcha

Сообщение dmmmy3 » 29 июн 2021, 08:22

а как гадать h-капчу? Подскажите пожалуйста! Чтобы она выскочила, достаточно на сайте https://freeusdcoin.com/ любой емэйл ввести и пароль.







1235.jpg
1235.jpg (96.24 КБ) 6568 просмотров

Ответить