@kingsize said in Проблема с многопотоком и while:
@Fox А ниче так фокс там крутит :)
Тссс, не пали контору :D
Присутствует такая каптча:
@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 знак умножения)