- Регистрация
- 01.05.2016
- Сообщения
- 99
- Благодарностей
- 5
- Баллы
- 8
Не так много опыта работы с CapMonstr'om. Есть задача - разгадывать обычную цифровую капчу.
Алгоритм:
1. Делаю запрос к "урлу" капчи с куками сессии, загружая картинку-капчу в папку
2. С помощью готового C# кубика с форума (совсем не шарю в c#) конвертирую её в base64 и отправляю на RuCaptcha, в дальнейшем по идее её перехватывает КМ, включена эмуляция именно RuCaptcha. Сниппет снизу, был бы благодарен, если бы пробежались по C#, мб где-то накосячил.
Результат - кубик постоянно возвращает "Sorry", а КапМонстр ни разу не смог разгадать, вот что на выходе имеется:
Алгоритм:
1. Делаю запрос к "урлу" капчи с куками сессии, загружая картинку-капчу в папку
2. С помощью готового C# кубика с форума (совсем не шарю в c#) конвертирую её в base64 и отправляю на RuCaptcha, в дальнейшем по идее её перехватывает КМ, включена эмуляция именно RuCaptcha. Сниппет снизу, был бы благодарен, если бы пробежались по C#, мб где-то накосячил.
Код:
//Отправка капчи из картинки
var captcha__get = project.Variables["linkCaptcha"].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);
image.Dispose();
}
var result = ZennoPoster.CaptchaRecognition("RuCaptcha.dll", base64String, "");
// отрезаем лишнее
var tmp = result.Split(new [] {"-|-"}, StringSplitOptions.None);
if (tmp.Length > 1)
{
File.Delete(captcha__get);
return tmp[0];
}
File.Delete(captcha__get);
return result;