Решение Recaptcha 2 через rucaptcha.com + autosubmit (библиотека)

amyboose

Client
Регистрация
21.04.2016
Сообщения
2 312
Благодарностей
1 191
Баллы
113
Этот шаблон является заменой старой версии моего сниппета с исправлением ошибки, которая возникает в нем в версии 5.19.0.0. Сам использую этот код для разгадки через рукапчу, когда нужно. Сейчас перенес в другую библиотеку этот код.

Поддерживаемые версии:

5.17 и выше (для работы автосабмита)
Без автосабмита должен работать на более ранних версиях

Как подключать

1) Импортируем библиотеки в GAC:
HtmlAgilityPack.dll
Newtonsoft.Json.dll
RecaptchaRecognition.dll
WebDriver.dll

2) Добавляем using:
using Recognition.Recaptcha2.RecognitionServices;

3) Копируем кубик из шаблона

Как использовать

Самый простой способ с автосабмитом для тех, кто не особо хочет во всем разбираться (автосабмит включен в приведенном коде):

Код:
IRecognitionService serviceRucaptcha = new Rucaptcha();
serviceRucaptcha.RecognizeRecaptchaInTab(instance, useAutoSubmit: true);

Способ с более тонкой настройкой:

Код:
IRecognitionService serviceRucaptcha = new Rucaptcha()
{
    ApiKey = "5d9b82561718be1346e549da35fe4a41",
    RequestInterval = TimeSpan.FromSeconds(10),
    Timeout = TimeSpan.FromSeconds(320)
};
Recognition.Recaptcha2.RecognitionServices.RecaptchaSettings settings = new Recognition.Recaptcha2.RecognitionServices.RecaptchaSettings()
{
    GoogleSiteKey = "Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
    IsInvisible = true,
    Url = "https://www.google.com"
};
serviceRucaptcha.RecognizeRecaptchaInTab(instance, instance.ActiveTab, settings, false);
Все указанные ниже параметры не обязательны для указывания (можно закомментировать):
ApiKey - ключ API
RequestInterval - таймаут между запросами
Timeout - время ожидания ответа от рукапчи
GoogleSiteKey - sitekey рекапчи
IsInvisible - задает тип капчи - invisible или нет (если не задано значение, то определяет автоматически со вкладки)
Url - задаем url страницы.

Параметры, передаваемые в метод RecognizeRecaptchaInTab:
1 - instance, обязателен
2 - вкладка, параметр не обязателен
3 - настройки (если задаются вручную), параметр не обязателен
4 - использовать или нет autosubmit, по умолчанию - true, параметр не обязателен

Если нужно просто получить токен рекапчи без вкладки, то надо использовать такой код:

Код:
IRecognitionService serviceRucaptcha = new Rucaptcha()
{
    ApiKey = "5d9b82561718be1346e549da35fe4a41",
    RequestInterval = TimeSpan.FromSeconds(10),
    Timeout = TimeSpan.FromSeconds(320)
};
Recognition.Recaptcha2.RecognitionServices.RecaptchaSettings settings = new Recognition.Recaptcha2.RecognitionServices.RecaptchaSettings()
{
    GoogleSiteKey = "Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
    IsInvisible = false,
    Url = "https://www.google.com"
};
string token = serviceRucaptcha.RecognizeRecaptcha(settings);
Для продвинутых пользователей есть асинхронный метод:
Код:
string token = await serviceRucaptcha.RecognizeRecaptchaAsync(settings);
 

Вложения

Последнее редактирование:

Lord_Alfred

Client
Регистрация
09.10.2015
Сообщения
3 916
Благодарностей
3 867
Баллы
113
Вангую, что много кто не осилит...
 

one

Client
Регистрация
22.09.2015
Сообщения
6 833
Благодарностей
1 275
Баллы
113

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 453
Благодарностей
5 912
Баллы
113
Это рещение скорее для продвинутых пользователей, кодеров и любителей C#, т.к. в ZennoPoster есть готовый кубик для решения рекапчи2 с автосабмитом, без добавления библиотек, кода и др. сложностей.
 
  • Спасибо
Реакции: konfuciy

amyboose

Client
Регистрация
21.04.2016
Сообщения
2 312
Благодарностей
1 191
Баллы
113
Это рещение скорее для продвинутых пользователей, кодеров и любителей C#, т.к. в ZennoPoster есть готовый кубик для решения рекапчи2 с автосабмитом, без добавления библиотек, кода и др. сложностей.
Не вижу ничего продвинутого в том, чтобы добавить библиотеки, 1 директиву и 2 строки кода прописать (указан как самый простой способ).
Я встречал очень мало пользователей зеннопостера, которые не умели подключать библиотеки или директивы
Из продвинутого тут только асинхронный метод в самом конце
 
  • Спасибо
Реакции: Harvi

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 453
Благодарностей
5 912
Баллы
113
Не вижу ничего продвинутого в том, чтобы добавить библиотеки, 1 директиву и 2 строки кода прописать (указан как самый простой способ).
Я встречал очень мало пользователей зеннопостера, которые не умели подключать библиотеки или директивы
Из продвинутого тут только асинхронный метод в самом конце
а я встречал много таких пользователей):D
 

Lord_Alfred

Client
Регистрация
09.10.2015
Сообщения
3 916
Благодарностей
3 867
Баллы
113
Я встречал очень мало пользователей зеннопостера, которые не умели подключать библиотеки или директивы
Не хотелось бы обидеть тех, кто задает вопросы, но почитай 40 страниц топика рекапчагнайзера. Там и не такое не могут осилить...
 

amyboose

Client
Регистрация
21.04.2016
Сообщения
2 312
Благодарностей
1 191
Баллы
113
Обновил шаблон:

- Добавлена поддержка автосабмита для версий ниже зеннопостера 5.17
 

Вложения

Vass

Client
Регистрация
03.02.2014
Сообщения
79
Благодарностей
10
Баллы
8

amyboose

Client
Регистрация
21.04.2016
Сообщения
2 312
Благодарностей
1 191
Баллы
113
А начиная с какой версии работает?
Не могу сказать, надо тестить. Вообще я практически для всех сайтов могу сделать рабочим автосабмит, для которых не работают кубики автосабмита, но это уже индивидуально.
Иногда сайты довольно специфические и поэтому там стандартное решение и не работает
 

Vass

Client
Регистрация
03.02.2014
Сообщения
79
Благодарностей
10
Баллы
8
На более низкой версии ругается
Выполнение действия CSharp OwnCode Метод не найден: "System.String ZennoLab.CommandCenter.Document.EvaluateScript(System.String, Boolean, Boolean)".
если правильно понял это появилось в 5.15
 

sitnem

Client
Регистрация
03.12.2016
Сообщения
122
Благодарностей
78
Баллы
28
в ZennoPoster есть готовый кубик для решения рекапчи2 с автосабмитом, без добавления библиотек, кода и др. сложностей.
А как увеличить время ожидания ответа от сайта? У меня модуль очень часто не успевает поймать ответ, летят: CAPCHA_NOT_READY, а потом кубик завершается ошибкой, но делаю запрос вручную через 10-15 секунд (http://rucaptcha.com/res.php?key=xxxxx&action=get&id=yyyyyy) и вижу, что токен пришел.

UPD:

Как я понял нужно, править файл RuCaptcha.dll.config (User\AppData\Roaming\ZennoLab\Configs)
 
Последнее редактирование:

Lord_Alfred

Client
Регистрация
09.10.2015
Сообщения
3 916
Благодарностей
3 867
Баллы
113

sitnem

Client
Регистрация
03.12.2016
Сообщения
122
Благодарностей
78
Баллы
28
PS: собсно подтверждение того, что писали выше: стартпост не читай @ пиши
Да, это я понял, но у меня уже с давних пор шаблоны подвязаны на кубике по разгадыванию ReCaptcha (стандартном модуле), не хочется сейчас в каждый лезть (возможно стоило заместо кубика сделать внутренний шаблон, где разгадывать эту капчу) и добавлять дополнительные библиотеки, хотя и рассматриваю такую возможность... Искал решение по стандартому кубику, наткнулся на эту тему, увидел коммент по нему, решил спросить :bk:
 

Timburwald

Новичок
Регистрация
20.07.2019
Сообщения
8
Благодарностей
0
Баллы
1
Здравствуйте. Не понимаю, как поступать, если капча разгадана сотрудниками неверно. Ведь по вашему запросу не приходит ID, а следовательно нельзя отправить репорт о неверном разгадывании.
 

amyboose

Client
Регистрация
21.04.2016
Сообщения
2 312
Благодарностей
1 191
Баллы
113
Здравствуйте. Не понимаю, как поступать, если капча разгадана сотрудниками неверно. Ведь по вашему запросу не приходит ID, а следовательно нельзя отправить репорт о неверном разгадывании.
В данной реализации нельзя получить id, надо код менять, чтобы это делать
 

Timburwald

Новичок
Регистрация
20.07.2019
Сообщения
8
Благодарностей
0
Баллы
1

amyboose

Client
Регистрация
21.04.2016
Сообщения
2 312
Благодарностей
1 191
Баллы
113
Жаль, я так понял, Вы добавлять данную функцию пока не планируете?
Не планировал
Вообще эта библиотека написана под себя, выложил просто так
Есть и обновленная версия её, которая работает лучше
 

Timburwald

Новичок
Регистрация
20.07.2019
Сообщения
8
Благодарностей
0
Баллы
1
Не планировал
Вообще эта библиотека написана под себя, выложил просто так
Есть и обновленная версия её, которая работает лучше
А за счет чего улучшена работа, если не секрет? Пока реализовал получение ID через веб интерфейс, переходя в кабинет рукапчи и получая ID последней капчи, но это, конечно, так себе решение)
 

amyboose

Client
Регистрация
21.04.2016
Сообщения
2 312
Благодарностей
1 191
Баллы
113
А за счет чего улучшена работа, если не секрет? Пока реализовал получение ID через веб интерфейс, переходя в кабинет рукапчи и получая ID последней капчи, но это, конечно, так себе решение)
Автосабмит улучшил, ещё какие-то мелочи добавил
Уже не помню, задача появляется и я внедряю улучшения в библиотеку
 

Timburwald

Новичок
Регистрация
20.07.2019
Сообщения
8
Благодарностей
0
Баллы
1

Metrix

Client
Регистрация
03.01.2014
Сообщения
343
Благодарностей
272
Баллы
63
Я так понимаю, что свои прокси для разгадывания в сервис никак не отправить?
 

Karamzin

Client
Регистрация
24.05.2016
Сообщения
214
Благодарностей
431
Баллы
63
В ЗП работает, а в VS не хочет
42127
какой файл ему нужен?
 

amyboose

Client
Регистрация
21.04.2016
Сообщения
2 312
Благодарностей
1 191
Баллы
113

Karamzin

Client
Регистрация
24.05.2016
Сообщения
214
Благодарностей
431
Баллы
63

amyboose

Client
Регистрация
21.04.2016
Сообщения
2 312
Благодарностей
1 191
Баллы
113
это все подключено. он же не библиотеку не может найти, а файл какой-то
скорее всего из-за версии зеннопостера (инстанс старый или библиотека скомпилирована под старую версию)
 

Кто просматривает тему: (Всего: 2, Пользователи: 0, Гости: 2)