Мне нужно пройти авторизацию на вебсайте средствами 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('<scr'+'ipt type="text/javascript" s'+'rc="' + RecaptchaState.server + 'js/recaptcha.js"></scr'+'ipt>');
Каким образом я могу вытащить картинки с reCAPTCHA? Старая reCAPTCHA представлялась по видимому одной картинкой, которую можно было загрузить по такому адресу: http://www.google.com/recaptcha/api/image?c=[challenge from RecaptchaState]
. Что делать с новой, я не знаю. Не особо разбираюсь в веб-программировании.
UPD: Возможно есть иное решение, при котором нам не потребуется получать картинку. Может быть возможно как то отобразить капчу, чтобы её прошёл пользователь. Что то вроде WebBrowser, только не всю страницу, а лишь саму капчу, полученную из WebResponse.
Я открываю сайт в 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.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Я смог сделать CornerRadius как Attached property для Button и TextBox с помощью класса
После перезагрузки компьютера перестали выводиться данные из файла в ListBox, но при этом ошибок при компиляции не выявляются, просто при нажатии...
Вопрос такой возможно ли создание/изменение стиля CalendarItem так чтобы можно было отображать еще и доп значение(грубо говоря номер) из модели...
Пишу аналог кассового терминала для WindowsДля оплаты используются наличные или карта