Добавлен функционал Нейроботов.
Нейробот — бот, который продает сам! Создайте бесплатно Telegram бота на нейросети за 10 минут!
robot.jpg
Суть вопроса в ролике: https://www.youtube.com/watch?v=FMI-yEFCMQE
@romanbiz said in Как реализовать в BAS?:
@Slayts у профессиональных разработчиков нет времени смотреть видеоролики, уверяю Вас.
Да я всё понимаю, просто если я буду пытаться описать словами, то что мне нужно, боюсь получится плохо. А в ролике всё доступно рассказано.
Но давайте попробуем)
Нужно чтобы Recaptcha2 грузилась на пустой страничке на нужном мне домене. Т.е. грузился не весь сайт, а только recaptcha на нём. В zennopostere это решается с помощью С# и JS (собственно об этом и ролик), но так как, BAS не поддерживает С#, то нужно решение как реализовать это силами BAS.
Вот код на С#:
Tab tab = instance.ActiveTab; // Будем работать с активной вкладкой
instance.UseJavaScripts = false; // Отключим выполнение JS на страничке
tab.SetSourceText(""); // Очистим исходный код странички
string script = @"var recaptcha = document.createElement('script'); recaptcha.setAttribute('src', 'https://www.google.com/recaptcha/api.js'); document.getElementsByTagName('head')[0].appendChild(recaptcha);"; // Здесь создадим наш ява скрипт для выполнения на страничке сайта
string html = @"<!DOCTYPE html><html><head></head><body><div id='recaptcha-demo' class='g-recaptcha' data-sitekey='6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-' data-callback='onSuccess'></div></body></html>"; // Здесь создадим новый исходный код странички
tab.SetSourceText(html); // Установим созданный выше исходный код на страницу нашего сайта
instance.UseJavaScripts = true; // Включим выполнение ява скриптов в нашем браузере
tab.MainDocument.EvaluateScript(script); // Выполним созданный выше ява скрипт
@artihorror said in Как реализовать в BAS?:
@Slayts ищи по форуму, такая тема поднималась
Спасибо, попробую найти.
@romanbiz said in Как реализовать в BAS?:
@Slayts Это просто моё личное мнение и совет. В следующий раз когда выкладываете видео пишите к нему описание на несколько слов, чтобы те кого оно заинтересует переходили. Лично для меня такое отношение это неуважение.
Согласен, не очень получилось. Просто не знал как сформулировать, поэтому и тему "неоформленную" в offtopice разместил.
@Antonio said in Как реализовать в BAS?:
@Slayts
http://community.bablosoft.com/topic/3675/recaptcha-выпадает-за-пределы-экрана/21
Спасибо, нашёл несколько тем по вашей наводке.
Ситуация такова:
Нужно сделать вывод рекапчи на сайте без подгрузки остального содержимого, как на этом скрине https://i.imgur.com/cAIQQQs.png (источник http://community.bablosoft.com/topic/3369/денвер-и-бас)
Я так понял, что мне нужно вот это (источник http://community.bablosoft.com/topic/2871/установить-адрес-домен-не-загружая-страницу/12)
<html><body>
<form method="POST">
<script src="https://www.google.com/recaptcha/api.js" async defer></script>
<div class="g-recaptcha" data-sitekey="вашключ"></div>
<input type="submit" name="OK" value="send">
</form>
</body></html>
Но залить этот код, не на локальный сайт, а на "целевой" там где капча.
Вопрос, как с помощью BAS мне очистить полностью, содержимое загруженного сайта и залить туда данный html код?
Я так понимаю, что надо "Яваскрипт" или "Выполнить код" но я в этом не силён.
@Slayts Браузер -> Яваскрипт
var b=document.getElementsByTagName('body')[0];b.innerHTML='<form method="POST"><div class="g-recaptcha" data-sitekey="вашключ"></div><input type="submit" name="OK" value="send"></form>';var script = document.createElement('script');script.src = 'https://www.google.com/recaptcha/api.js';script.async = false;b.appendChild(script);
ВАШКЛЮЧ из data-sitekey на требуемой странице
Это лишь реализация вставки твоего кода в пустую страницу на нужном сайте.
Капча распознаётся и решается.
Однако, это всё дело нужно допиливать под задачу...