Страницы

Поиск по вопросам

вторник, 17 декабря 2019 г.

Получить изображение из reCAPTCHA

#c_sharp #net #веб_программирование #recaptcha


Мне нужно пройти авторизацию на вебсайте средствами C#. В форме авторизации присутствует
reCAPTCHA. Нужно как то её обработать (т.е. вытащить картинки, текст задания и позволить
пользователю решить это дело).

Для начала, я вижу пустой div class="g-recaptcha" data-sitekey="...". Отсюда можно
взять значение атрибута data-sitekey. Перейдём по ссылке https://www.google.com/recaptcha/api/challenge?k=[data-sitekey
value] и загрузится примерно такая страничка:

var RecaptchaState = {
    challenge : '...',
    server : 'https://www.google.com/recaptcha/api/',
    site : '...',
    ...
};

document.write('');


Каким образом я могу вытащить картинки с reCAPTCHA? Старая reCAPTCHA представлялась
по видимому одной картинкой, которую можно было загрузить по такому адресу: http://www.google.com/recaptcha/api/image?c=[challenge
from RecaptchaState]. Что делать с новой, я не знаю. Не особо разбираюсь в веб-программировании.



UPD: Возможно есть иное решение, при котором нам не потребуется получать картинку.
Может быть возможно как то отобразить капчу, чтобы её прошёл пользователь. Что то вроде
WebBrowser, только не всю страницу, а лишь саму капчу, полученную из WebResponse.
    


Ответы

Ответ 1



Я открываю сайт в WebBrowser, получаю все картинки с сайта и так нахожу саму картинку капчи: private void openAndWaitCompliteURL(string url) { webBrowser.Navigate(url); while (webBrowser.ReadyState != WebBrowserReadyState.Complete) { Application.DoEvents(); } } private string getImageWhenLoad(string attr) { HtmlDocument doc = webBrowser.Document; HtmlElementCollection htmlElementCollection = doc.Images; foreach (HtmlElement htmlElement in htmlElementCollection) { string imgUrl = htmlElement.GetAttribute(attr); return imgUrl; } } openAndWaitCompliteURL(url); capchaForm.capchaPictureBox.ImageLocation = getImageWhenLoad("src"); После чего вывожу картинку в PictureBox.

Комментариев нет:

Отправить комментарий