Запрос на c# передача капчи

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

stalker0007

Client
Регистрация
14.09.2016
Сообщения
72
Реакции
0
Баллы
6
Помогите мужики передать капчу по с#

собственно нужно передать:

Link: site.com/capcha.php?={-Variable.id-} берется из переменной = получить по линку капчу
Useragent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0
Cookies: с переменной
Authorization: Bearer {-Variable.token-} = что бы брался с переменной токен


ну и заканчивалось все разгадкой в капмонстре с отправкой в переменную результат

//Отправка капчи из картинки
var captcha__get = project.Variables["Captcha_file"].Value;
var image = System.Drawing.Image.FromFile(@captcha__get);
string base64String = String.Empty;
using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
{
image.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
byte[] imageBytes = ms.ToArray();
base64String = Convert.ToBase64String(imageBytes);
}
var result = ZennoPoster.CaptchaRecognition("CapMonster2.dll", base64String, "");
// отрезаем лишнее
var tmp = result.Split(new [] {"-|-"}, StringSplitOptions.None);
if (tmp.Length > 1) return tmp[0];

project.Variables["Captcha_answer"].Value = result;
return result;



Помогите кубиком пожалуйста
Выходит так что без авторизации и кук не та картинка капчи вот и мучаюсь...
 
Последнее редактирование:
Помогите мужики передать капчу по с#

собственно нужно передать:

Link: site.com/capcha.php?={-Variable.id-} берется из переменной = получить по линку капчу
Useragent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0
Cookies: с переменной
Authorization: Bearer {-Variable.token-} = что бы брался с переменной токен


ну и заканчивалось все разгадкой в капмонстре с отправкой в переменную результат

//Отправка капчи из картинки
var captcha__get = project.Variables["Captcha_file"].Value;
var image = System.Drawing.Image.FromFile(@captcha__get);
string base64String = String.Empty;
using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
{
image.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
byte[] imageBytes = ms.ToArray();
base64String = Convert.ToBase64String(imageBytes);
}
var result = ZennoPoster.CaptchaRecognition("CapMonster2.dll", base64String, "");
// отрезаем лишнее
var tmp = result.Split(new [] {"-|-"}, StringSplitOptions.None);
if (tmp.Length > 1) return tmp[0];

project.Variables["Captcha_answer"].Value = result;
return result;



Помогите кубиком пожалуйста
Выходит так что без авторизации и кук не та картинка капчи вот и мучаюсь...
Вы видимо смотрите в Project в браузере и видите например на капче 123 и тестово пытаетесь ее скачать через гет,при скачивании через гет у Вас картинка не 123 а 567.Если так то это нормально,при каждом обращении к скачиванию картинка будет меняться,главное чтоб куки были.
Или же у Вас не проходит авторизация?
 
Мне нужно добавить строки авторизации и куков что бы и то и другое бралось в с переменной к коду:

Код:
Развернуть Свернуть Копировать
/Отправка капчи из картинки
var captcha__get = project.Variables["Captcha_file"].Value;
var image = System.Drawing.Image.FromFile(@captcha__get);
string base64String = String.Empty;
using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
{
image.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
byte[] imageBytes = ms.ToArray();
base64String = Convert.ToBase64String(imageBytes);
}
var result = ZennoPoster.CaptchaRecognition("CapMonster2.dll", base64String, "");
// отрезаем лишнее
var tmp = result.Split(new [] {"-|-"}, StringSplitOptions.None);
if (tmp.Length > 1) return tmp[0];

project.Variables["Captcha_answer"].Value = result;
return result;
 
Мужики выручайте! как прицепить данные к отправке капчи в кап
 
Без куков и авторизации у меня неверная капча!
Get у меня все выходит но мне нужен c#
Для капмонстра куки не нужны он их ни как не воспринимает,Вы не правильно либо парсите куки либо не правильно передаете данные
 
Для капмонстра куки не нужны он их ни как не воспринимает,Вы не правильно либо парсите куки либо не правильно передаете данные

дак мне не нужно капмонстру куки передавать...

1.Скрипт в с# делает запрос на мой Link: site.com/capcha.php?={-Variable.id-}
опычный get только в c# с куками и данными что нужны
2. дальше продолжается код тем что передает фото капмонстру и получает ответ в переменную.

У меня уже есть готовый вариант но он совсем для другого сайта и там свои проблемы были токены и прочая дрянь переделать не удается код я не знаю c# по этому нуждаюсь в помощи!

-----------

Проблем в том что я на get сделал все окей с куками и авторизацией, проблема в том что многопоток не пашет нормально! если взят потоков больше 5-10 он начинает путаться в папке с капчами то есть одновременно задает одно и тоже имя капче.jpg и не может сохранить или прочитать и в итоге ошибка!
 
Я про это.
как прицепить данные к отправке капчи в кап
Вот примерно так,скачивает файл и отправляет на разгадку,код не тестил щас так как с мобилы
Код:
Развернуть Свернуть Копировать
string url_site = "http://vk.com";
string proxy = "proxy";
string useragent = "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36";
string cookie = "cookie";
string downloadPath = project.Directory + "\\captcha\\";
string referrer = "http://urlreferer.ru";
//
string answer = String.Empty;
//
try
{
    var file = ZennoPoster.HttpGet(
        url_site,
        proxy,
        "UTF8",
        ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.File,
        60000,
        cookie,
        useragent,
        false,
        1,
        null,
        downloadPath
        );
}
    catch (Exception ex)
    {
    throw new Exception("Не удалось скачать файл");
}
//
//
try
    {
        if (!File.Exists(file))
        {
        throw new Exception("Не удалось скачать файл");
        }
        var bytes = File.ReadAllBytes(file);
        if (bytes.Length < 1024)
        {
            throw new Exception("Битый файл");
        }
        string str = Convert.ToBase64String(bytes);
        var rc = ZennoPoster.CaptchaRecognition("CapMonster2.dll", str, "");
        answer = rc.Split(new [] {"-|-"}, StringSplitOptions.RemoveEmptyEntries)[0];
    }
    finally
    {
        if (File.Exists(file))
        {
            File.Delete(file);
        }
    }
return answer;
 
  • Оценить
Реакции: viol2021
Проблем в том что я на get сделал все окей с куками и авторизацией, проблема в том что многопоток не пашет нормально! если взят потоков больше 5-10 он начинает путаться в папке с капчами то есть одновременно задает одно и тоже имя капче.jpg и не может сохранить или прочитать и в итоге ошибка!
тут уже Вам надо либо под каждый запрос создавать папку и сохранять каждую капчу в отдельную папку после удалять либо использовать сторонние библиотеки
 
тут уже Вам надо либо под каждый запрос создавать папку и сохранять каждую капчу в отдельную папку после удалять либо использовать сторонние библиотеки

выше код в чем то не верный сам не работает и другим блокам не дает работать везде ошибка. Спасибо что попробовали
насчет отдельной папки это я тоже знал но это выкрутится называется и возни деление базы и так далее, думал может кто кодом поможет c#
 
выше код в чем то не верный сам не работает и другим блокам не дает работать везде ошибка. Спасибо что попробовали
насчет отдельной папки это я тоже знал но это выкрутится называется и возни деление базы и так далее, думал может кто кодом поможет c#
1.Что именно не работает и какая ошибка?
2.Вам пытаются помочь но Вы ничего толкого не предоставляете для более быстрой помощи.
3.Код не работал так как переменную не туда вынес и это отобразилось в логе (могли бы это написать или сами исправить).
Вот код только что проверил все работает,скачивает,отправляет,получает ответ и удаляет.
Код:
Развернуть Свернуть Копировать
string url_site = "";
string proxy = "";
string useragent = "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36";
string cookie = "";
string downloadPath = project.Directory + @"\captcha\";
string referrer = "http://urlreferer.ru";
//
string answer = string.Empty;
var file = string.Empty;
//
try
{
    file = ZennoPoster.HttpGet(
        url_site,
        proxy,
        "UTF8",
        ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.File,
        60000,
        cookie,
        useragent,
        false,
        1,
        null,
        downloadPath
        );
}
    catch (Exception ex)
    {
    throw new Exception("Не удалось скачать файл");
}
//
//
try
    {
        if (!File.Exists(file))
        {
        throw new Exception("Не удалось скачать файл");
        }
        var bytes = File.ReadAllBytes(file);
        if (bytes.Length < 1024)
        {
            throw new Exception("Битый файл");
        }
        string str = Convert.ToBase64String(bytes);
        var rc = ZennoPoster.CaptchaRecognition("CapMonster2.dll", str, "");
        answer = rc.Split(new [] {"-|-"}, StringSplitOptions.RemoveEmptyEntries)[0];
    }
    finally
    {
        if (File.Exists(file))
        {
            File.Delete(file);
        }
    }
return answer;
 
  • Оценить
Реакции: stalker0007

сейчас работает, скажите как можно добавить 1 строку авторизации

в get запрос идет вот то что я передаю в юзерагенте
Код:
Развернуть Свернуть Копировать
Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Authorization: Bearer {-Variable.token-}
Connection: keep-alive

мне нужно передать Authorization: Bearer {-Variable.token-} добавив в код что вы скинули выше
 
сейчас работает, скажите как можно добавить 1 строку авторизации

в get запрос идет вот то что я передаю в юзерагенте
Код:
Развернуть Свернуть Копировать
Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Authorization: Bearer {-Variable.token-}
Connection: keep-alive

мне нужно передать Authorization: Bearer {-Variable.token-} добавив в код что вы скинули выше
Ну так Вы же его передаете,отпраьте запос и посмотрите в траффике этот запрос какие данные передаются
Пример :
2018-04-22_125119.png
 
я имею введу передать его теперь в c# в коде что вы мне скинули

Код:
Развернуть Свернуть Копировать
string url_site = "";
string proxy = "";
string useragent = "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36";
string cookie = "";
string downloadPath = project.Directory + @"\captcha\";
string referrer = "http://urlreferer.ru";


думал что получится так string Authorization= ""; но обломался
 
я имею введу передать его теперь в c# в коде что вы мне скинули

Код:
Развернуть Свернуть Копировать
string url_site = project.Variables["url_site"].Value;
string proxy = project.Variables["proxy"].Value;
string useragent = project.Variables["useragent"].Value;
string cookie = project.Variables["cookie"].Value;
string token = project.Variables["token"].Value;
string downloadPath = project.Directory + @"\captcha\";
string referrer = "http://urlreferer.ru";


думал что получится так string Authorization= ""; но обломался
Пробуйте
Код:
Развернуть Свернуть Копировать
string url_site = project.Variables["url_site"].Value;
string proxy = project.Variables["proxy"].Value;
string useragent = project.Variables["useragent"].Value;
string cookie = project.Variables["cookie"].Value;
string token = project.Variables["token"].Value;
string downloadPath = project.Directory + @"\captcha\";
string referrer = "http://urlreferer.ru";
//
string answer = string.Empty;
var file = string.Empty;
//Заголовки
string[] additionalHeaders =  {
"Accept: */*",
"Accept-Language: en-US,en;q=0.5",
"Accept-Encoding: gzip, deflate",
"Content-Type: application/x-www-form-urlencoded",
"Authorization: Bearer" + token,
"Connection: keep-alive"};
//
try
{
    file = ZennoPoster.HttpGet(
        url_site,
        proxy,
        "UTF8",
        ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.File,
        60000,
        cookie,
        useragent,
        false,
        1,
        additionalHeaders,
        downloadPath
        );
}
    catch (Exception ex)
    {
    throw new Exception("Не удалось скачать файл");
}
//
//
try
    {
        if (!File.Exists(file))
        {
        throw new Exception("Не удалось скачать файл");
        }
        var bytes = File.ReadAllBytes(file);
        if (bytes.Length < 1024)
        {
            throw new Exception("Битый файл");
        }
        string str = Convert.ToBase64String(bytes);
        var rc = ZennoPoster.CaptchaRecognition("CapMonster2.dll", str, "");
        answer = rc.Split(new [] {"-|-"}, StringSplitOptions.RemoveEmptyEntries)[0];
    }
    finally
    {
        if (File.Exists(file))
        {
            File.Delete(file);
        }
    }
return answer;
 
Последнее редактирование:
Код:
Развернуть Свернуть Копировать
"Authorization: Bearer " + token,
 
посмотрите что то с кавычками
"Authorization: Bearer" + token,


пробовал закрывать
"Authorization: Bearer" + "token",
и ещё пару вариантов но не передает сам токен что в переменной
А блин забыл в верх допишите
string token = project.Variables["token"].Value;
 
  • Оценить
Реакции: stalker0007
Идеально все пашет! Спасибо большое!
 
Идеально все пашет! Спасибо большое!
В следующий раз чтоб вопросы решались быстрее предоставляйте больше данных,типо кусок когда и скрин лога,так будет проще)))
 
  • Оценить
Реакции: stalker0007

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