@Fox Еще раз спасибо, проверю повнимательнее
Что делать с математической каптчей?
-
Присутствует такая каптча:
Нужно ее решить и нажать на кнопку, у каждой кнопки есть свой hash, но мне кажется что проще будет просто определить где на этих картинках правильный ответ и дать его. Как это реализовать? Вот в коде элемента отрывок: http://joxi.ru/vAWLljQFgOBalr -
@forall
Эта капча генерируется. Собрать все ответы не получится.@ls5stream
Сперва разгадываем капчу выражение. Получаем ответ.
Затем поочереди разгадываем цифры. Как только получаем ответ по цифре, совпадающий с ответом на выражение, жмем по этой цифре.
И не понадобится запоминать хеши.Если пилишь на запросах, алгоритм будет чуть сложнее, но всё равно легкий.
-
-
-
@denanotherday said in Что делать с математической каптчей?:
@denanotherday said in Что делать с математической каптчей?:
@ls5stream експрешн нужно ставить

А теперь установите в переменную строку
1+2и попробуйте получить результат
-
Для подобной строки (цифры от 1 до 8, сумма или разница) использую регулярку:
[^1-8]*([1-8])[^\+\-]*([\+\-])[^1-8]*([1-8]).*с занесением GROUP1,GROUP2,GROUP3
В идельном случае в GROUP1,GROUP3 - цифры, в GROUP2 знак.
Но идеал бывает редко, XEvil часто такое гонит, что дофига доп. обработок приходится делать.
Подскажите, а где отметить капчу в качестве математической? -
@denanotherday Не всегда. Попробуйте получить что то регуляркой в конструкторе или даже так через экшен. И пусть оно соответствует математике на все 100% вы поставьте полученное выражение. Будете удивлены. Выполнить код надежнее.
-
@vituskosoy Нигде. Это ваше действие. Если соответствует то... экшен if string_matches и ваша регулярка, если подходит под нее, извлекаем. Регулярку типа такой
[\s\S]*?(\d+(?:\-|\+|\*|/|x)\d+)[\s\S]*?но это просто пример я не знаю что у вас там за капча и что приходит.
Данная берет цифру(сколько есть) любой знак из +,-,*,x./ и снова цифру(сколько есть).
Потом выполнить код [[результат]] = eval([[ваша капча]])
Запамятовал. Бас не примет если знак будет x, это будет ошибкой. Его нужно заменить на *. Это все есть в конструкторе. Заменить x (такой знак умножения) на * (js знак умножения)