вычисления в капче

progrlab

Client
Регистрация
07.02.2014
Сообщения
204
Благодарностей
82
Баллы
28
капча вида : "четыре - 3"

Как дополнительные параметры передаю в антикапчу : is_russian=1&calc=1
сервис возвращает в виде строки : "один".
Все верно. Но надо чтобы он возвращал : "1".
Как заставить anti-captcha.com это делать в его API я не нашел.
Похоже там нет таких параметров.
Может у кого-то есть таблица перекодировки числительных в цифры ?
Алгоритм "число прописью" - довольно известен. А вот обратного что-то не встречал.
 

budora

Client
Регистрация
13.08.2012
Сообщения
831
Благодарностей
556
Баллы
93
Можно через Switch // по выходу установить из числительного цифровое. Получится логика из 10 переключений.
 
Последнее редактирование:

progrlab

Client
Регистрация
07.02.2014
Сообщения
204
Благодарностей
82
Баллы
28
Это понятно.
Я пробую сделать это поиском и простым перебором в таблице.
Где есть сопоставления : один - 1, два - 2 и т.д.
В общем случае "переключений" может быть больше 10-ти :-)
 

progrlab

Client
Регистрация
07.02.2014
Сообщения
204
Благодарностей
82
Баллы
28
Угу. Все это хорошо со свитчем, но как выяснилось не все так просто.
И конвертация числительных в цифру не самое сложное. Тем более это можно решить в тупую - перебором через заранее набитую табличку соответствий числительных в виде строки и цифр.
Но там есть разные варианты .
Например вот такие : [Поле ввода капчи] * 7 = двадцать восемь.
Причем : "* 7 =" - это текст , а "двадцать восемь" - это картинка.

Могут быть и такие :
23 - [Поле ввода капчи] = десять
"23 -" - текст
"=" - текст
"десять" - картинка.

Похоже - зеннопостер тут не поможет. А жаль.
Надо искать другое решение.
Три солдата из стройбата - заменяют экскаватор.
Буду искать "солдат". :-)

ЗЫ
Уже не первый раз убеждаюсь, что самые вкусные ресурсы зенкой не пробить.
Не первый случай уже.
 
Последнее редактирование:

botovod

Client
Регистрация
04.04.2014
Сообщения
170
Благодарностей
126
Баллы
43
Каптча подобная, а может и эта же уже решалась. Есть 2 подхода
1) Отсылать на антигейт сразу div целиком с параметрами is_russian=1&numeric=1
2) Отсылать только текст цифры с теми же параметрами, и решать не сложное уравнение перенося все цифры за знак "равно" (школьных навыков 8 класса хватит)


например
[Поле ввода капчи] * 7 = двадцать восемь.
преобразуем в
[Поле ввода капчи] = двадцать восемь / 7
"двадцать восемь" на антигейт, результат в екшен javascript для вычисления
 

progrlab

Client
Регистрация
07.02.2014
Сообщения
204
Благодарностей
82
Баллы
28
Вообщем.. погорячился я , парни.
Был неправ. Проблема решилась просто.
Эти дела вот такие тэги в обрамление имеют.
<td>[Поле ввода капчи] * 7 = двадцать восемь.</td>
Я передаю в сервис все что находится в ячейке таблицы <td>....</td>
И мне возвращается приемлемый для меня результат.
Погогрячился.. был не прав.
Зеннопостре умнее меня оказался :-)
 

progrlab

Client
Регистрация
07.02.2014
Сообщения
204
Благодарностей
82
Баллы
28
Кстати, порой встречаются капчи как во вложении к данному посту.
Вот тут я нашел достаточно универсальный набор классов по работе с числительными.
http://rsdn.ru/article/files/dotnet/RusNumber.xml
Для разгадывания капчей он даже избыточен.
Я скомпилировал эти исходники в DLL , которую и прилагаю.
В проекте зеннопостера использую в сниппетах :

int snum = int.Parse(project.Variables["captcha"].Value);
return RSDN.RusNumber.Str(snum, true,"", "", "");

Данный метод преобразует число в число прописью.
Т.е. на входе - 123
На выходе : сто двадцать три

Может кому понадобиться.

P.S.
Во вложении находится ClassLibrary1.dll , которую надо положить в каталог типа :
"Program Files (x86)\ZennoLab\ZennoPoster Standard\Progs\ExternalAssemblies\"

Ну и прописать ее в ссылки из GAC и в директивах using своего проекта.
 

Вложения

  • Спасибо
Реакции: rostonix

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 714
Баллы
113
кто то такое спрашивал в том году)
спасибо что делитесь с комьюнити)
 

progrlab

Client
Регистрация
07.02.2014
Сообщения
204
Благодарностей
82
Баллы
28
Да не за что.
На то оно и комьюнити, чтобы с ним делиться. :-)
 

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