Как/куда вставить токен капчи?

Все вопросы касающиеся использования
программы можно задать здесь
Ответить
denion1st
Сообщения: 2
Зарегистрирован: 18 сен 2020, 01:36

Как/куда вставить токен капчи?

Сообщение denion1st » 18 сен 2020, 01:41

Доброго времени суток господа, есть следующий вопрос, при помощи сервиса "антикапча" генерируется токен, но не могу понять как и куда его использовать чтобы продвинуться дальше.

Получаю вот такой пример токена:

your recaptcha token: 03AGdBq25nnaACnFyMUFRiDZfLFD7gxQLoEFNHD2rQvYS_iO4gbw8JCemWSHgPwQVfbUPQlm8_9RrObRjpaZ9ORCwsEyVy4M0RSWZKhu4LjLepfDM7gLMrdKliKB4cP4aEanVMJNIsOMUfBHO4RVCouImrDVSMcklBZQmj_4SqYVKYV3SRCjBTXpdkJUFFv38OYm-szhUEoOAvJ1PF5Fw07YfFBpQEPzOR71_aNor-oRCaTgb76rurD3iX8WVIBZ9xMdD-du4zSDCoYyE4UBbiKJB2yPV_Z6pUss3vicx3bEwjB6V2y50eR7-gBssHGuqYqC9Q88IckpDmDj1utk24aqh7FRcEwuM-nWnmFj7H7ueTnCBjCcEccz2BdE_FR4dkZrg5VN168DekhjQy1eOW-ZtxS6hB11o28wyiFeBO46NPiWJJpswdPxEiVjcgJPxca87k0Q9FCwkamkYjTumPoZBl2TeAKCLT6KsN-2zFXMw26JfKevlsMPk

Кусок кода использую следующий, спустя секунд 20-25 генерируется токен но не могут понять куда его вывести чтобы подтвердить капчу с картинками, помогите кто знает, спасибо.

$api = new NoCaptchaProxyless();
$api->setVerboseMode(true);
//your anti-captcha.com account key
$api->setKey("МОЙ КЛЮЧ");

//target website address
$api->setWebsiteURL("http://makeawebsitehub.com/recaptcha/test.php");

//recaptcha key from target website
$api->setWebsiteKey("6LfI9IsUAAAAAKuvopU0hfY8pWADfR_mogXokIIZ");

//create task in API
if (!$api->createTask()) {
$api->debout("API v2 send failed - ".$api->getErrorMessage(), "red");
return false;
}

$taskId = $api->getTaskId();

//wait in a loop for max 60 seconds till task is solved
if (!$api->waitForResult(60)) {
echo "could not solve captcha\n";
echo $api->getErrorMessage()."\n";
} else {

$gResponse = $api->getTaskSolution();
echo "\nyour recaptcha token: $gResponse\n\n";

}

$textarea->set_value_by_name("g-recaptcha-response", $gResponse);
$btn->click_by_id("recaptcha-verify-button", "2");
echo "<br>";
// pause 5 sec
sleep(5);
$app->quit();
?>

Аватара пользователя
XwebDeveloper
Сообщения: 51
Зарегистрирован: 13 ноя 2017, 12:53

Re: Как/куда вставить токен капчи?

Сообщение XwebDeveloper » 18 сен 2020, 14:10

К сожалению выдаёт что такой страницы нету.
img1.jpg
img1.jpg (92.2 КБ) 65 просмотров
Токен, который вы получаете, вставляется в зависимости от сайта в элементы типа:
$textarea->set_value_by_name("g-recaptcha-response", $gResponse); 
Вот тут https://humanemulator.info/blog/%d1%80% ... -emulator/ в конце стать есть пример с описанием на что смотреть.

Также примеры для работы с рекапчей: с подробными объяснениями viewtopic.php?f=52&t=1328 , тут просто примеры для разных сайтов viewtopic.php?f=57&t=2648 и viewtopic.php?f=53&t=2535.
Запрос на создание скриптов viewforum.php?f=61

vawrk
Сообщения: 3
Зарегистрирован: 28 янв 2016, 15:06
Откуда: Russia (UTC+3)
Контактная информация:

Re: Как/куда вставить токен капчи?

Сообщение vawrk » 22 сен 2020, 14:23

> //target website address
> $api->setWebsiteURL("http://makeawebsitehub.com/recaptcha/test.php");

Текущий открытый урл можно получать автоматически:
$currentUrl = $webpage->get_url();
echo "current url: {$currentUrl}\n";

> //recaptcha key from target website
> $api->setWebsiteKey("6LfI9IsUAAAAAKuvopU0hfY8pWADfR_mogXokIIZ");

Значение аттрибута 'data-sitekey' можно получать автоматически:
$el = $div->get_by_attribute('id', 'html_element', true);
$dataSiteKey = @trim($el->get_attribute('data-sitekey'));
if($dataSiteKey === '')
{
	echo "[ERROR] Can't get 'data-sitekey'. Stopped.";
	$app->quit();
	exit(1);
}
echo "data-sitekey: {$dataSiteKey}\n";

> $textarea->set_value_by_name("g-recaptcha-response", $gResponse);

Сюда, верно. Еще на всякий случай можно проверять результат:
echo "textarea g-captcha-response: "
	. $textarea->get_inner_text_by_id('g-recaptcha-response')
	. "\n";

При автораспознавании галочка не устанавливается зеленой со значком 'ok', это нормально,
форму можно сабмитить.

После распознавания каптчи её надо как можно быстрее засабмитить, чтобы распознавание не протухло.

Иногда кнопка сабмита может быть неактивна при автоматическом распознавании,
нужно удалить аттрибут 'disabled', после чего можно кликать на кнопку сабмита:
$element->remove_attribute_by_attribute("id","button-submit-form", true, 'disabled');
$element->click_by_attribute("id","button-submit-form", true);
Андрей Воробьев
Разработчик веб автоматизаций
va@brautomate.ru, telegram: +7-978-811-22-14 или @thevoan, http://brautomate.ru
viewtopic.php?f=44&t=2525

denion1st
Сообщения: 2
Зарегистрирован: 18 сен 2020, 01:36

Re: Как/куда вставить токен капчи?

Сообщение denion1st » 07 окт 2020, 00:14

Большое спасибо за ответ, в общем вбил все данные, получаю ответ (токен) но всё равно не могу отправить форму с токеном, я так понимаю вот тут:

$textarea->set_value_by_name("g-recaptcha-response", $gResponse);
$btn->click_by_id("recaptcha-verify-button", "2");
echo "<br>";

надо прописать правильные атрибуты со страницы где делается проверка, а не дефолтные, правильно? (сори за тупые вопросы если что) Вот сам кусок когда каптчи со страницы где пытаюсь сделать автоматизацию и внести данные:

Код: Выделить всё

<script src="https://www.google.com/recaptcha/api.js?hl=es"></script>
		

		<div>
			<div class="fld"> 
				
				
				
				<label class="required"><span>Por favor, valide el Captcha para poder continuar</span><span class="fld-help">Campo obligatorio</span></label>
				<div id="html_element" class="g-recaptcha"
					data-sitekey="6Ld3FzoUAAAAANGzDQ-ZfwyAArWaG2Ae15CGxkKt" data-callback="enableBtn" style="display: inline-block;vertical-align: bottom;"></div>					
				
			</div>
		</div>
		
	</div></div>
									</div>
								</fieldset>


								<div class="mf-layout--row">
									<input id="btnEnviar" type="button" class="mf-button primary"
										value="Aceptar" onclick="envia()" /> <input
										id="btnVolver" type="button" class="mf-button primary"
										value="Volver" onclick="goVolverAcInfo()" />
								</div>
							</div>


						</div>
Вложения
Screenshot_45.png
Screenshot_45.png (26.54 КБ) 30 просмотров

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

Re: Как/куда вставить токен капчи?

Сообщение Support » 07 окт 2020, 01:17

$btn->click_by_id("recaptcha-verify-button", "2");
Цифра 2 в этой функции говорит о том что кнопка находится во 2 frame. Причиной того что не срабатывает может быть то что номер фрейма меняется и просто не происходит клик по кнопке.

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

// получить нумер frame в которого находится элемент с таким параметром
function check_in_frame($att_name,$att_value,$exactly=false)
{
       global $div;

       for($i=0;$i<10;$i++)
       {
            if($div->is_exist_by_attribute($att_name,$att_value,$exactly,$i))
            {
               return $i;
            }
        }
     retrun -1;
}

можно переделать функцию таким образом:
// получить номер frame в которого находится элемент с таким параметром
function check_in_frame($tag, $att_name,$att_value,$exactly=false, $max=10)
{
       global $tag;

       for($i=0;$i<$max;$i++)
       {
            if($tag->is_exist_by_attribute($att_name,$att_value,$exactly,$i))
            {
               return $i;
            }
        }
     retrun -1;
}


тогда нажатие на кнопку будет таким:

// получить номер frame в которого находится элемент с таким параметром
$num = check_in_frame($btn,"id","recaptcha-verify-button", true);

echo "номер фрейма $num<br>";
// клик на кнопку
$btn->click_by_id("recaptcha-verify-button", $num );


// получить номер frame в которого находится элемент с таким параметром
function check_in_frame($tag, $att_name,$att_value,$exactly=false, $max=10)
{
       global $tag;

       for($i=0;$i<$max;$i++)
       {
            if($tag->is_exist_by_attribute($att_name,$att_value,$exactly,$i))
            {
               return $i;
            }
        }
     retrun -1;
}

Ответить