Получение reCaptcha get запросом

  • Автор темы Автор темы dannko
  • Дата начала Дата начала

dannko

Client
Регистрация
12.08.2013
Сообщения
137
Реакции
32
Баллы
28
Господа, помогите, пожалуйста, не могу побороть гугловскую эту рекапчу.

Получил я страницу регистрации, там такая штука:
HTML:
Развернуть Свернуть Копировать
  <iframe src="//www.google.com/recaptcha/api/noscript?k=6LfptswSAAAAAA2YOZTZWjzvWhhY0zKjoLFe8G7G" height="300" width="500" style="border:none;"></iframe><br/>

Перейдя по урлу айфрейма откроется окно рекапчи с картинкой и формочкой для ответа. В ответ на правильный ответ она отдаст код, который нужно будет вставить в post запрос регистрации на сайте.

Беда в том, что get запрос из зенно на этот урл возвращается пустым. Но на гет запрос браузера она ж возвращается:) Не могу понять, где я палюсь..
 
Зенка даже не отправляет этот запрос, в логах после выполнения запроса ошибка
Код:
Развернуть Свернуть Копировать
|WARN|ResourceDownloader.ResourceCurl|System.UriFormatException: Invalid URI: The format of the URI could not be determined.
   at System.Uri.CreateThis(String uri, Boolean dontEscape, UriKind uriKind)
   at System.Uri..ctor(String uriString)
 
А почему просто не открыть ифрейм в браузере ? 0_о
 
C#:
Развернуть Свернуть Копировать
var x = tab.GetSourceText("utf-8"); // В x содержится содержимое страницы
var data = Regex.Match(x,"(?<=https://www.google.com/recaptcha/api/image).+?(?=\")").Value; // находим капчу гугловскую на странице
data="https://www.google.com/recaptcha/api/image"+data;
using (WebClient webclient = new WebClient())
            {
                using (var imageStream = webclient.OpenRead(data))
                {
                    Image img = Image.FromStream(imageStream);
                    img.Save("D:\\123.jpg");  // Ну и сохраняем
                }
            }
 
  • Оценить
Реакции: dannko
А почему просто не открыть ифрейм в браузере ? 0_о
я делаю шаблон на post и get запросах, добавление экшена с браузером существенно замедлит выполнение.

C#:
Развернуть Свернуть Копировать
var x = tab.GetSourceText("utf-8"); // В x содержится содержимое страницы
var data = Regex.Match(x,"(?<=https://www.google.com/recaptcha/api/image).+?(?=\")").Value; // находим капчу гугловскую на странице
data="https://www.google.com/recaptcha/api/image"+data;
using (WebClient webclient = new WebClient())
            {
                using (var imageStream = webclient.OpenRead(data))
                {
                    Image img = Image.FromStream(imageStream);
                    img.Save("D:\\123.jpg");  // Ну и сохраняем
                }
            }
Спасибо большое за сниппет! Я начал только разбираться в шарпе) Завтра утром попробую и отпишусь :)
 
А почему просто не открыть ифрейм в браузере ? 0_о
А как это сделать?

Mожно ли настроить ZennoPoster на выполнение определенного шага (клик и ввод капчи) вручную?
Если не затруднит, ответьте подробнее, пожалуйста, т.к. я новичок и только начинаю разбираться в ZennoPoster.
 
кукиси нужно вставлять в get запрос.
 
C#:
Развернуть Свернуть Копировать
var x = tab.GetSourceText("utf-8"); // В x содержится содержимое страницы
var data = Regex.Match(x,"(?<=https://www.google.com/recaptcha/api/image).+?(?=\")").Value; // находим капчу гугловскую на странице
data="https://www.google.com/recaptcha/api/image"+data;
using (WebClient webclient = new WebClient())
            {
                using (var imageStream = webclient.OpenRead(data))
                {
                    Image img = Image.FromStream(imageStream);
                    img.Save("D:\\123.jpg");  // Ну и сохраняем
                }
            }
Вставляю C# код, и не могу запустить ни один блок, чего не хватает? За ранее спасибо! Без имени-1.jpg
 
Tab tab = instance.ActiveTab;
Спасибо за быстрый ответ!)

Tab tab = instance.ActiveTab;
var x = tab.GetSourceText("utf-8"); // В x содержится содержимое страницы
var data = Regex.Match(x,"(?<=https://www.google.com/recaptcha/api/image).+?(?=\")").Value; // находим капчу гугловскую на странице
data="https://www.google.com/recaptcha/api/image"+data;
using (WebClient webclient = new WebClient())
{
using (var imageStream = webclient.OpenRead(data))
{
Image img = Image.FromStream(imageStream);
img.Save("D:\\123.jpg"); // Ну и сохраняем
}
}

но всё равно не работает( Ни один блок в зенке не запускается.
 
можно так тоже
C#:
Развернуть Свернуть Копировать
Tab tab = instance.ActiveTab;
var x = tab.GetSourceText("utf-8"); // В x содержится содержимое страницы
var data = Regex.Match(x, "(?<=https://www.google.com/recaptcha/api/image). ?(?=\")").Value; // находим капчу гугловскую на странице
data = "https://www.google.com/recaptcha/api/image" + data;
using(System.Net.WebClient webclient = new System.Net.WebClient()) {
    using(var imageStream = webclient.OpenRead(data)) {
        Image img = Image.FromStream(imageStream);
        img.Save("D:\\123.jpg"); // Ну и сохраняем
    }
}
 
можно так тоже
C#:
Развернуть Свернуть Копировать
Tab tab = instance.ActiveTab;
var x = tab.GetSourceText("utf-8"); // В x содержится содержимое страницы
var data = Regex.Match(x, "(?<=https://www.google.com/recaptcha/api/image). ?(?=\")").Value; // находим капчу гугловскую на странице
data = "https://www.google.com/recaptcha/api/image" + data;
using(System.Net.WebClient webclient = new System.Net.WebClient()) {
    using(var imageStream = webclient.OpenRead(data)) {
        Image img = Image.FromStream(imageStream);
        img.Save("D:\\123.jpg"); // Ну и сохраняем
    }
}

Привет Radzhab! Спасибо, что откликнулся!
У меня вопрос. В переменную X делаю GET запрос на страницу ( www.google.com/recaptcha/api/noscript?k=6Ld8RcESAAAAAEo6_M9BjluesU7nWtdKmhIeU-jD)
Получаю следующее:

Код:
Развернуть Свернуть Копировать
<!DOCTYPE HTML><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Проверка reCAPTCHA (необходима для отправки формы)</title></head>
<body><p>Мы должны убедиться в том, что вы человек, а не робот. Пройдите проверку по слову и нажмите кнопку "Я не робот", чтобы получить код подтверждения. В будущем этот процесс можно будет упростить, задействовав Javascript.</p>
<form action="" method="POST"><input type="hidden" name="recaptcha_challenge_field" id="recaptcha_challenge_field" value="03AHJ_VuvtMeyhnLhQLvawGD936EzNUmNvard_VZ-cGtQk7f_XUMFUbZyvoCLWqE6Sj_OpvDxOq2_XCcA9ML41l4Fp37_NSb_kHfDMb_gb951cc1uH7tqQdF_pLCJaVY7RjwkjaxO4fUUwOjEVcfAQVzkZFqwV02uAlERWxjhdlTGshrSdSh3U6zv-GaaQtibM9t639NBlZIw2M4C7NKOp8qFi3bQa6aa6RQ">
<center><img width="300" height="57" alt="" src="image?c=03AHJ_VuvtMeyhnLhQLvawGD936EzNUmNvard_VZ-cGtQk7f_XUMFUbZyvoCLWqE6Sj_OpvDxOq2_XCcA9ML41l4Fp37_NSb_kHfDMb_gb951cc1uH7tqQdF_pLCJaVY7RjwkjaxO4fUUwOjEVcfAQVzkZFqwV02uAlERWxjhdlTGshrSdSh3U6zv-GaaQtibM9t639NBlZIw2M4C7NKOp8qFi3bQa6aa6RQ"></center>
<div class="recaptcha_input_area"><label for="recaptcha_response_field">Введите текст:</label></div>
<div><input name="recaptcha_response_field" id="recaptcha_response_field" type="text" autocomplete="off"></div>
<div><a href="?k=6Ld8RcESAAAAAEo6_M9BjluesU7nWtdKmhIeU-jD&amp;is_audio=false">Другие слова</a>
<a href="?k=6Ld8RcESAAAAAEo6_M9BjluesU7nWtdKmhIeU-jD&amp;is_audio=true">Звуковая проверка</a>
<a href="https://support.google.com/recaptcha" target="_blank">Справка</a></div>
<div><input type="submit" name="submit" value="Я не робот"></div></form></body></html>

При выполнении блока C# логи такие:Без имени-1.jpg

Я так понимаю там дело в регулярке. Помоги пожалуйста! За ранее спасибо!
 

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