Стим и Recaptcha sitekey addon.

Chupaka

Client
Регистрация
22.09.2019
Сообщения
17
Благодарностей
4
Баллы
3
На стиме пока что гадается через Capmonster2.dll>Во вкладке, при наличии программы КапМонстр.
спасибо. Т.е я правильно понимаю,что это единственный метод на сегодня гадания через кап?
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 789
Благодарностей
5 721
Баллы
113
спасибо. Т.е я правильно понимаю,что это единственный метод на сегодня гадания через кап?
на стиме да. на других ресурсах капмонстр может и через сайтекей работать.
 
  • Спасибо
Реакции: goldfish и VladZen

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 480
Благодарностей
5 917
Баллы
113

goldfish

Client
Регистрация
06.06.2011
Сообщения
210
Благодарностей
17
Баллы
18
похоже что уже не работает. открывает сетку картинок, поиск задания, поиск изображения и дальше вышло время ожидания загрузки элемента. Проверял работу Capmonster2.dll (на случай если я неправильно настроил Capmonster2) на https://www.google.com/recaptcha/api2/demo там все работает. Capmonster не может найти на странице стима картинки капчи(
 

goldfish

Client
Регистрация
06.06.2011
Сообщения
210
Благодарностей
17
Баллы
18

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 789
Благодарностей
5 721
Баллы
113
у Вас тоже уже не работает?
никто не жаловался. ну раз вы спрашиваете, то решил проверить.
вот результат https://yadi.sk/i/Vply1Iellhqp6Q

заметил что капмонстр гидрант принял за трактор :-) улыбнуло.

ну а стандартный кубик рекапчи, походу сломался. все как вы описали.
71500
 
Последнее редактирование:

goldfish

Client
Регистрация
06.06.2011
Сообщения
210
Благодарностей
17
Баллы
18
никто не жаловался. ну раз вы спрашиваете, то решил проверить.
вот результат https://yadi.sk/i/Vply1Iellhqp6Q

заметил что капмонстр гидрант принял за трактор :-) улыбнуло.

ну а стандартный кубик рекапчи, походу сломался. все как вы описали.
я нашел решение через код. со стандартным методом. просто нужно пользоваться кодом, а не кубиками)
 

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 480
Благодарностей
5 917
Баллы
113
похоже что уже не работает. открывает сетку картинок, поиск задания, поиск изображения и дальше вышло время ожидания загрузки элемента. Проверял работу Capmonster2.dll (на случай если я неправильно настроил Capmonster2) на https://www.google.com/recaptcha/api2/demo там все работает. Capmonster не может найти на странице стима картинки капчи(
Последнаяя версия постера у вас?
 

goldfish

Client
Регистрация
06.06.2011
Сообщения
210
Благодарностей
17
Баллы
18

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 480
Благодарностей
5 917
Баллы
113
нет 5.4 . выше написал что через код с вашего сайта все работает.
Не знаю, какой код имеете ввиду.
Кубик гадает рекапчу в стиме в версии 7.2.1.0, в пятерке не работает.
 

goldfish

Client
Регистрация
06.06.2011
Сообщения
210
Благодарностей
17
Баллы
18
Регистрация
25.11.2020
Сообщения
2
Благодарностей
0
Баллы
1

goldfish

Client
Регистрация
06.06.2011
Сообщения
210
Благодарностей
17
Баллы
18
Вы как то меняли код ?
Почему то не работает код на капчу
не менял. код работает. значит что то вы неправильно делаете. выполните пошагово, разберитесь. просто так не бывает чтобы не работало. есть причина. там особо и нечему ломаться в этом коде. нашел элемент, отправил картинку, получил ответ. все. логика довольно проста.
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 789
Благодарностей
5 721
Баллы
113
не менял. код работает. значит что то вы неправильно делаете. выполните пошагово, разберитесь. просто так не бывает чтобы не работало. есть причина. там особо и нечему ломаться в этом коде. нашел элемент, отправил картинку, получил ответ. все. логика довольно проста.
нашел, отправил, но кап не разобрал, что это 4x4 картинка... словил фэйл :-)
нашел, но не отправил задание, так как пришло задание на статику .... фэйл :-)
нашел, отправил, но кап не понял задания... фэйл :-)
ну а так-то рабочий код, я сам его за основу брал :-)
 

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 480
Благодарностей
5 917
Баллы
113

goldfish

Client
Регистрация
06.06.2011
Сообщения
210
Благодарностей
17
Баллы
18
нашел, отправил, но кап не разобрал, что это 4x4 картинка... словил фэйл :-)
нашел, но не отправил задание, так как пришло задание на статику .... фэйл :-)
нашел, отправил, но кап не понял задания... фэйл :-)
ну а так-то рабочий код, я сам его за основу брал :-)
да есть моменты. но на то он и открытый код чтобы править. может и твою разработку купил бы. да только то что в одну лицензию не очень устраивает)
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 789
Благодарностей
5 721
Баллы
113
да есть моменты. но на то он и открытый код чтобы править. может и твою разработку купил бы. да только то что в одну лицензию не очень устраивает)
:-)
да вообще без проблем. +1 лицензия , -20% , +2 лицензии -25% , +3 лицензии и выше -35%
 

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 480
Благодарностей
5 917
Баллы
113

ModNick

Client
Регистрация
27.06.2016
Сообщения
34
Благодарностей
35
Баллы
18
Вобщем намучался с попытками решить капчу через ключ, через запросы, во кладке и по всякому. С неделю наверное сидел.
Никогда бы не подумал что вернусь к методам 16 года, и вот мы здесь. Короче немного переделал кубик, про который говорили ранее, потому что не у всех есть возможность использовать капмонстр, да и целесообразность у меня всегда вызывала вопросы. Сколько не покупал - макс. месяц попользуешь и дальше он лежит без дела. Так что вот кубик под рукапчу.
- Добавил определение сетки
- Добавил "нет подходящих изображений". Важно при динамической капче.
- Добавил сжатие картинки. Рукапча макс принимает 100кб, а зенка почему то иногда до 500кб создает.
- Тестировал на стиме, через песочницу рукапчи и пару часиков в обычном режиме. Отписывайтесь о багах если считаете нужным.

Кубик:
// Основные параметры

// время ожидания
var waitTime = 1500;
// количество попыток распознать
var tryRecognize = 10;
// количество попыток выбирать изменяющиеся картинки
var dynamicImagesRecognizeAttempts = 20;
// количество попыток загрузить элемент
var tryLoadElement = 60;
// получать полный ответ
bool fullAnswer = false;
// показывать сообщения о прогрессе распознавания
var needShowMessages = false;
// проверять корректность распознанного ответа
var needToCheck = true;

// Вспомогательные переменные

// вкладка
Tab tab = instance.ActiveTab;
// поздравляем, вы не робот
var success = false;
// время вышло
var timeout = false;
// задание для рекапчи 2
string task = string.Empty;
// url изображения
var src = string.Empty;
// картинка в base64
var imageString = string.Empty;
// ответ на каптчу
string answer = string.Empty;
// капча изменилась
var changed = false;
// пустой ответ
bool answerIsEmpty = false;
// изменяемая каптча
bool dynamicCaptcha = false;
// ввод каптчи несколько раз
bool notOneEnter = false;
var coincidenceReCaptcha2Index = -1;

//Размер капчи
string recaptchacols = string.Empty;
string recaptcharows = string.Empty;

// Проверка прохождения защиты
Action CheckOK = () => {
    tab.WaitDownloading();
    for (int k = 0; k < tryLoadElement; k++)
    {
        System.Threading.Thread.Sleep(waitTime); // подождём загрузки элементов
        var check = tab.FindElementByAttribute("div", "class", "recaptcha-checkbox-checkmark", "regexp", 0);

        // проверка исчезновения формы
        var loadedForm = tab.FindElementByAttribute("div", "class", "primary-controls", "regexp", 0);
        if (loadedForm.IsVoid)
        {
            success = true;
            break;
        }
        else
        {
            int xPrimaryControlsDisplaysment = loadedForm.DisplacementInTabWindow.X;
            int yPrimaryControlsDisplaysment = loadedForm.DisplacementInTabWindow.Y;

            if (xPrimaryControlsDisplaysment < 0 || yPrimaryControlsDisplaysment < 0) // there are no visible recaptcha
            {
                success = true;
                break;
            }
            if (check.IsVoid)
                break;
        }

        var more = tab.FindElementByAttribute("div", "class", "rc-imageselect-error-select-more", "regexp", 0);
        var wrong = tab.FindElementByAttribute("div", "class", "rc-imageselect-incorrect-response", "regexp", 0);
        if (!more.IsVoid && !wrong.IsVoid)
        {
            var isNotVisibleMore = more.GetAttribute("outerhtml").Replace(" ", "").Contains("display:none");
            var isNotVisibleWrong = wrong.GetAttribute("outerhtml").Replace(" ", "").Contains("display:none");
            if (isNotVisibleMore && isNotVisibleWrong)
            {
                if (!check.IsVoid)
                {
                    if (check.OuterHtml.Contains("style=\"\""))
                    {
                        success = true;
                        break;
                    }
                    else break;
                }
            }
            else break;
        }
        if (k == (tryLoadElement - 1)) timeout = true;

    }
};

// Подтверждение ответа
Action VerifyAnswer = () => {
    project.SendInfoToLog("Проверка правильности после ввода динамической капчи", needShowMessages);
    tab.WaitDownloading();
    // поиск кнопки "Подтвердить"
    HtmlElement apply = tab.FindElementById("recaptcha-verify-button");
    if (!apply.IsVoid) apply.Click();
    // проверка правильности ответа
    CheckOK();
};

Action InputNotBotText = () => {
    tab.WaitDownloading();
    var inputField = tab.FindElementByAttribute("input:text", "id", "default-response", "text", 0);
    if (!inputField.IsVoid)
    {
        inputField.SetValue("I am not robot", "Full");
        VerifyAnswer();
    }
};

Action UpdateImage = () => {
    project.SendInfoToLog("Обновление капчи", needShowMessages);

    // Обновить капчу если необходимо
    if (!changed)
    {
        HtmlElement reload = tab.FindElementById("recaptcha-reload-button");

        if (!reload.IsVoid)
        {
            reload.Click();
            InputNotBotText();
        }
        else timeout = true;
    }
    changed = false;

    for (int k = 0; k < tryLoadElement; k++)
    {
        System.Threading.Thread.Sleep(waitTime); // waiting for element load
                                                 // searching for the picture
        var testImage = tab.FindElementByAttribute("img", "class", "rc-image-tile", "regexp", 0);
        if (testImage.IsVoid) continue;
        // get image url
        var newSrc = testImage.GetAttribute("src");
        // if the image has been changed, go out
        if (newSrc != src) break;
        if (k == (tryLoadElement - 1)) timeout = true;
    }
};

Action VisibleIndexReCaptchaDefinition = () => {
    tab.WaitDownloading();
    var recaptchaElementsGroup = tab.FindElementsByAttribute("div", "class", "recaptcha-checkbox-checkmark", "regexp");
    int length = recaptchaElementsGroup.Elements.Length;
    if (length == 1)
    {
        coincidenceReCaptcha2Index = 0;
        return;
    }

    for (int i = 0; i < length; i++)
    {
        var element = recaptchaElementsGroup.Elements[i];
        if (!element.IsVoid)
        {
            int x = element.DisplacementInTabWindow.X;
            int y = element.DisplacementInTabWindow.Y;

            var suspectVisibleElement = tab.GetElementFromPoint(x, y).DisplacementInTabWindow;
            if (x == suspectVisibleElement.X && y == suspectVisibleElement.Y && element.Width != 0 && element.Height != 0 && x != 0 && y != 0)
            {
                coincidenceReCaptcha2Index = i;
                break;
            }
        }
    }
};

// Поиск рекаптчи 2
Action SearchReCaptcha2 = () => {
    project.SendInfoToLog("Поиск рекапчи 2", needShowMessages);
    tab.WaitDownloading();
    for (int k = 0; k < tryLoadElement; k++)
    {
        VisibleIndexReCaptchaDefinition();
        if (coincidenceReCaptcha2Index < 0) coincidenceReCaptcha2Index = 0;

        // поиск кнопки "Я не робот"
        HtmlElement notRobot = tab.FindElementByAttribute("div", "class", "recaptcha-checkbox-checkmark", "regexp", coincidenceReCaptcha2Index);

        // кнопка существует
        if (!notRobot.IsVoid)
        {
            // клик по кнопке
            notRobot.Click();
            System.Threading.Thread.Sleep(waitTime); // pause

            // если ввод капчи не требуется
            var check = tab.FindElementByAttribute("div", "class", "recaptcha-checkbox-checkmark", "regexp", coincidenceReCaptcha2Index);
            if (!check.IsVoid)
            {
                if (check.OuterHtml.Contains("style=\"\""))
                {
                    success = true;
                    timeout = false;
                    break;
                }
            }
        }

        // форма существует
        var loadedForm = tab.FindElementByAttribute("div", "class", "primary-controls", "regexp", 0);
        if (!loadedForm.IsVoid)
            break;

        // подождем загрузки элементов
        System.Threading.Thread.Sleep(waitTime);
        if (k == (tryLoadElement - 1)) timeout = true;
    }
};

// Поиск задания рекапчи 2
Action SearchTask = () => {
    tab.WaitDownloading();
    project.SendInfoToLog("Поиск задания", needShowMessages);
    dynamicCaptcha = false;
    notOneEnter = false;
    answer = String.Empty;

    for (int k = 0; k < tryLoadElement; k++)
    {
        HtmlElement taskHe = tab.FindElementByAttribute("div", "class", "rc-imageselect-desc-wrapper", "regexp", 0);

        if (!taskHe.IsVoid)
        {
            task = taskHe.GetAttribute("innertext"); // получаем задание
            string suspecttask = task.ToLower();
            if (suspecttask.Contains("click verify once there are none left") || suspecttask.Contains("when images will be end") ||
              suspecttask.Contains("когда изображения закончатся") ||
              suspecttask.Contains("коли зображень уже не залишиться, натисніть \"підтвердити\"") ||
              suspecttask.Contains("cliquez sur le bouton de validation") ||
              suspecttask.Contains("klicken sie") ||
              suspecttask.Contains("fai clic su verifica dopo averle selezionate tutte") ||
              suspecttask.Contains("gdy wybierzesz wszystkie, kliknij weryfikuj"))
                dynamicCaptcha = true;

            if (suspecttask.Contains("if there are none, click skip") ||
              suspecttask.Contains("if they do not exist, click \"skip\"") ||
              suspecttask.Contains("wenn du keine siehst") ||
              suspecttask.Contains("s'il n'y en a aucune, cliquez sur \"ignorer\"") ||
              suspecttask.Contains("если их нет, нажмите \"пропустить\"") || suspecttask.Contains("якщо нічого немає") ||
              suspecttask.Contains("ich nie ma, kliknij") ||
              suspecttask.Contains("se non ne vedi, fai clic su salta"))
                notOneEnter = true;
            timeout = false;
            break;
        }

        System.Threading.Thread.Sleep(waitTime); // подождём загрузки элемента
        if (k == (tryLoadElement - 1)) timeout = true;
    }
};

// Поиск изображения
Action SearchImage = () => {
    tab.WaitDownloading();
    project.SendInfoToLog("Поиск изображения", needShowMessages);

    for (int k = 0; k < tryLoadElement; k++)
    {
        HtmlElement image = null;
        if (dynamicCaptcha) image = tab.FindElementByAttribute("table", "class", "rc-imageselect-table", "regexp", 0);
        else image = tab.FindElementByAttribute("img", "class", "rc-image-tile", "regexp", 0);

        //Размер
        string size = image.GetAttribute("class").Split('-').Last();
        recaptchacols = size[0].ToString();
        recaptcharows = size[1].ToString();
        project.SendInfoToLog(String.Format("Size - {0} x {1}", recaptchacols, recaptcharows));

        // если есть изображения
        if (!image.IsVoid)
        {
            // получаем url изображения
            if (!dynamicCaptcha) src = image.GetAttribute("src");
            imageString = image.DrawToBitmap(!dynamicCaptcha);
            byte[] bytes = Convert.FromBase64String(imageString);
            MemoryStream ms = new MemoryStream(bytes);
            
            project.SendInfoToLog("Captcha size " + (ms.Length / 1024).ToString() + " KB");
            
            if ((ms.Length / 1024) > 90)
            {
                long quality = 80L;

                using (var img = new System.Drawing.Bitmap(System.Drawing.Image.FromStream(ms)))
                {
                    var resized = new System.Drawing.Bitmap(image.Width, image.Height);
                    using (var graphics = System.Drawing.Graphics.FromImage(resized))
                    {
                        graphics.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighSpeed;
                        graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
                        graphics.CompositingMode = System.Drawing.Drawing2D.CompositingMode.SourceCopy;
                        graphics.DrawImage(img, 0, 0, image.Width, image.Height);

                        var encoderParameters = new System.Drawing.Imaging.EncoderParameters(1);
                        encoderParameters.Param[0] = new System.Drawing.Imaging.EncoderParameter(System.Drawing.Imaging.Encoder.Quality, quality);
                        var codec = System.Drawing.Imaging.ImageCodecInfo.GetImageEncoders().FirstOrDefault(c => c.MimeType == "image/jpeg");

                        MemoryStream mems = new MemoryStream();
                        resized.Save(mems, codec, encoderParameters);

                        project.SendInfoToLog("Compress captcha size " + (mems.Length / 1024).ToString() + " KB");

                        imageString = Convert.ToBase64String(mems.ToArray());
                    }
                }
            }

            timeout = false;
            break;
        }

        System.Threading.Thread.Sleep(waitTime); // подождем загрузки элементов
        if (k == (tryLoadElement - 1)) timeout = true;
    }
};

// Распознавание
Action Recognize = () => {
    project.SendInfoToLog("Распознавание", needShowMessages);
    var answerString = ZennoPoster.CaptchaRecognition("RuCaptcha.dll", imageString, String.Format("recaptcha=1&textinstructions={0}&recaptchacols={1}&recaptcharows={2}&can_no_answer=1", task, recaptchacols, recaptcharows));
    //project.SendInfoToLog(answerString);
    if (answerString.Contains("sorry")) return;
    if(answerString.Contains("No_matching_images")) { /*VerifyAnswer();*/ answer = "sorry"; return; }
    var split = answerString.Split(new[] { "-|-" }, StringSplitOptions.RemoveEmptyEntries);
    answer = split[0].Split(':')[1];
    project.SendInfoToLog("Ответ с рукапчи - " + answer);
};

// Вводим ответ
Action InputAnswer = () => {
    if (!String.IsNullOrEmpty(answer) && answer != "sorry")
    {

        project.SendInfoToLog("Ввод ответа и проверка правильности", needShowMessages);
        int count = 0;

        string[] answers;
        if (answer.Contains("/"))
        {
            answers = answer.Split(new[] { "/" }, StringSplitOptions.RemoveEmptyEntries);
        }
        else
        {
            answers = new string[answer.Length];
            for (int i = 0; i < answer.Length; i++)
                answers[i] = answer[i].ToString();
        }

        foreach (string c in answers)
        {
            if (fullAnswer)
                if (count == 2) break;

            int index = Convert.ToInt32(c) - 1;
            HtmlElement he = tab.FindElementByAttribute("img", "class", "rc-image-tile", "regexp", index);

            if (!he.IsVoid)
            {
                he.Click(); //кликаем на картинку
                System.Threading.Thread.Sleep(500); // подождем немного
            }
            if (fullAnswer) count++;
        }

        // ищем кнопку "Подтвердить"
        HtmlElement apply = tab.FindElementById("recaptcha-verify-button");
        if (!apply.IsVoid) apply.Click();

        // проверим правильность ответа
        CheckOK();
        if (success) return;

        // вводим оставшуюся часть ответа
        if (fullAnswer)
        {
            for (int i = count; i < answer.Length; i++)
            {
                // снова ищем картинку
                var testImage = tab.FindElementByAttribute("img", "class", "rc-image-tile", "regexp", 0);
                if (testImage.IsVoid) break;
                // получаем url изображения
                var newSrc = testImage.GetAttribute("src");
                // если изображение изменилось, то выходим
                if (newSrc != src) break;
                else changed = true;
                // иначе продолжаем ввод
                int index = Convert.ToInt32(answer[i].ToString()) - 1;
                var he = tab.FindElementByAttribute("img", "class", "rc-image-tile", "regexp", index);
                if (!he.IsVoid)
                {
                    he.Click();
                    System.Threading.Thread.Sleep(500); // подождем немного
                    if (!apply.IsVoid) apply.Click();
                    CheckOK();
                    if (success) return;
                }
            }
        }
    }
    else answerIsEmpty = true;
};

//Вводим ответ
Action InputDynamicAnswer = () => {
    project.SendInfoToLog("Ввод ответа динамической каптчи", needShowMessages);

    string[] answers;
    if (answer.Contains("/"))
    {
        answers = answer.Split(new[] { "/" }, StringSplitOptions.RemoveEmptyEntries);
    }
    else
    {
        answers = new string[answer.Length];
        for (int i = 0; i < answer.Length; i++)
            answers[i] = answer[i].ToString();
    }

    foreach (string number in answers)
    {
        int index = Convert.ToInt32(number) - 1;
        HtmlElement he = tab.FindElementByAttribute("img", "class", "rc-image-tile", "regexp", index);
        if (he.IsVoid) he = tab.FindElementByAttribute("div", "class", "rc-image-tile-wrapper", "regexp", index);
        if (!he.IsVoid)
        {
            //кликаем на картинку
            he.Click();
            // подождём немного
            System.Threading.Thread.Sleep(500);
        }
    }

    // подождём еще немного
    System.Threading.Thread.Sleep(waitTime * 2);
};

//Вводим ответ
Action InputDynamicAnswer2 = () => {
    project.SendInfoToLog("Ввод ответа динамической каптчи", needShowMessages);

    string[] answers = answer.Split(new[] { "/" }, StringSplitOptions.RemoveEmptyEntries);

    foreach (string number in answers)
    {
        int index = Convert.ToInt32(number) - 1;
        HtmlElement he = tab.FindElementByAttribute("img", "class", "rc-image-tile", "regexp", index);
        if (!he.IsVoid)
        {
            //кликаем на картинку
            he.Click();
            // подождём немного
            System.Threading.Thread.Sleep(500);
        }
    }

    // подождём еще немного
    System.Threading.Thread.Sleep(waitTime * 2);
};

SearchReCaptcha2();
if (success)
    return "ok";

if (timeout) throw new Exception("Вышло время ожидания загрузки элемента");

for (int i = 0; i < tryRecognize; i++)
{
    project.SendInfoToLog(String.Format("Попытка №:{0}", i + 1), needShowMessages);

    InputNotBotText();
    SearchTask();
    if (timeout) break;

    // дополнительная проверка
    CheckOK();
    if (success) return "ok";

    int count = 0;

    // если капча изменяемая
    if (dynamicCaptcha)
    {
        while (count < dynamicImagesRecognizeAttempts)
        {
            if (count > 0)
                System.Threading.Thread.Sleep(waitTime * 3); // подождём загрузки исчезающих изображений

            SearchImage();
            if (timeout) break;
            Recognize();
            if (!String.IsNullOrEmpty(answer) && answer != "sorry") InputDynamicAnswer();
            else
            {
                VerifyAnswer();
                CheckOK();
                if (!success) answerIsEmpty = true;
                break;
            }
            count++;
        }
    }
    else
    {
        if (notOneEnter)
        {
            while (notOneEnter && !dynamicCaptcha && count < dynamicImagesRecognizeAttempts)
            {
                SearchImage();
                if (timeout) break;
                Recognize();
                if (!String.IsNullOrEmpty(answer) && answer != "sorry") InputDynamicAnswer2();
                VerifyAnswer();
                timeout = false;
                if (success) break;
                SearchTask();
                if (timeout) break;
                count++;
            }
        }
        else
        {
            SearchImage();
            if (timeout) break;
            Recognize();
            InputAnswer();
        }
    }
    if (timeout) break;

    if (!needToCheck) return "ok";

    if (answerIsEmpty)
    {
        answerIsEmpty = false;
        UpdateImage();
        continue;
    }

    if (success) return "ok";

    if (i != (tryRecognize - 1)) UpdateImage();
    if (timeout) break;
}

if (timeout) throw new Exception("Вышло время ожидания загрузки элемента");
else throw new Exception("Не распознано. Закончились попытки распознать, прежде чем ответ был засчитан");
 

Marlowarlus

Client
Регистрация
22.01.2019
Сообщения
6
Благодарностей
1
Баллы
3
Буквально несколько дней назад перестал capmonster гадать steam капчу. Есть решения в данный момент?
 
  • Спасибо
Реакции: Александр77
Регистрация
16.02.2018
Сообщения
181
Благодарностей
19
Баллы
18
Буквально несколько дней назад перестал capmonster гадать steam капчу. Есть решения в данный момент?
Я им пишу в другой теме это несколько дней! И в ответ ТИШИНА!!! Тупо даже их рекапчу2 толком не гадает!
 
  • Спасибо
Реакции: Philipp

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 480
Благодарностей
5 917
Баллы
113
Стим разгадывался через sitekey?)o_O
 

ModNick

Client
Регистрация
27.06.2016
Сообщения
34
Благодарностей
35
Баллы
18
Тоже интересно. Последнее время разгадывал через аудио.
 

Philipp

Client
Регистрация
14.10.2019
Сообщения
100
Благодарностей
55
Баллы
28

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 480
Благодарностей
5 917
Баллы
113
Буквально несколько дней назад перестал capmonster гадать steam капчу. Есть решения в данный момент?
Я им пишу в другой теме это несколько дней! И в ответ ТИШИНА!!! Тупо даже их рекапчу2 толком не гадает!
можете прислать более подробную информацию по проблеме?
скрины ошибок в КапМонстре при распознавании
репорт диагностики
 

ModNick

Client
Регистрация
27.06.2016
Сообщения
34
Благодарностей
35
Баллы
18
Как ты это делал?


А как ты это делал?
Скачивашь капчу и отправляешь в любой сервис транскрибации. Можно через байт код, можно в base64. Через пару секунд имеешь готовый ответ. Проходимость 100%, но нужны хорошие прокси, потому что через 5-6 раз такого использования рекапча говорит что от нас исходит подозрительная активность и отказывается выдавать аудио.
 
  • Спасибо
Реакции: evgenii2000 и Philipp
Регистрация
16.02.2018
Сообщения
181
Благодарностей
19
Баллы
18
Скачивашь капчу и отправляешь в любой сервис транскрибации. Можно через байт код, можно в base64. Через пару секунд имеешь готовый ответ. Проходимость 100%, но нужны хорошие прокси, потому что через 5-6 раз такого использования рекапча говорит что от нас исходит подозрительная активность и отказывается выдавать аудио.
Сможешь помочь с настройкой аудиокапчи?
 

privatelet

Новичок
Регистрация
11.08.2023
Сообщения
1
Благодарностей
0
Баллы
1
Скачивашь капчу и отправляешь в любой сервис транскрибации. Можно через байт код, можно в base64. Через пару секунд имеешь готовый ответ. Проходимость 100%, но нужны хорошие прокси, потому что через 5-6 раз такого использования рекапча говорит что от нас исходит подозрительная активность и отказывается выдавать аудио.
Делал ровно так, но почему-то после прохождения капчи (появляется галочка) и нажатия кнопки "Готово" пишет, что капча не пройдена и не пускает. Бывает даже так, что после этого достаточно просто заново тыкнуть на квадратик капчи и она сразу проходится и пускает дальше....

Собственно, в связи с этим вопрос - кроме как через аудио капча стима не гадается?
 
Последнее редактирование:

Philipp

Client
Регистрация
14.10.2019
Сообщения
100
Благодарностей
55
Баллы
28
Делал ровно так, но почему-то после прохождения капчи (появляется галочка) и нажатия кнопки "Готово" пишет, что капча не пройдена и не пускает. Бывает даже так, что после этого достаточно просто заново тыкнуть на квадратик капчи и она сразу проходится и пускает дальше....

Собственно, в связи с этим вопрос - кроме как через аудио капча стима не гадается?
Надо ждать пока админы починят монстра или к конкурентам обращаться
 
  • Спасибо
Реакции: Александр77
Регистрация
16.02.2018
Сообщения
181
Благодарностей
19
Баллы
18

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