|
Распознавание капчи (AntiGate.com) |
|
|
DarkMaster |
6.11.2014, 17:40
|
Модератор UOPilot
Сообщений: 9.570
Регистрация: 2.12.2008 Группа: Супермодераторы Наличность: 28534
Пользователь №: 11.279
|
Создана дллка для работы с рапознованнием капчи.
AntiGate_plugin.zip ( 126,81 килобайт )
Кол-во скачиваний: 2557Инструкция
Код AntiGate.dll - это плагин, который позволяет взаимодействовать UOPilot с сервисом AntiGate.com. Данный сервис предназначен для распознавания текста с картинок(капчи), которые обычно необходимо вводить при регистрации. Плагин необходимо поместить в папку Plugins рядом с uopilot.exe. Для работы требуются установленные библиотеки c++: http://www.microsoft.com/ru-ru/download/details.aspx?id=40784 В плагине содержится 3 функции: set $var AntiGate.SetKey (ваш_ключ) set %sendImg AntiGate.SendImage ( *путь* доп_параметр=значение доп_параметр=значение ...) set %getResult AntiGate.GetResult (id_изображения)
set $key AntiGate.SetKey (ваш_ключ) Задание ключа для работы с сервисом. $key - переменная, в которую помещается результат работы(текущий ключ). ваш_ключ - ваш ключ от сервиса AntiGate Пример: set $key AntiGate.SetKey (12345678901234567890123456789012) log $key
set %sendImg AntiGate.SendImage ( *путь* доп_параметр=значение доп_параметр=значение) Отправка изображения на сервис. %sendImg - массив в который помещается результат работы. %sendImg [1] - флаг результата работы: OK - загрузка прошла успешно. ERROR - произошла ошибка. %sendImg [2] - id_изображения, если оно успешно загружено, либо текст ошибки. *путь* - адрес картинки на вашем компьютере. Не ссылка на нее в интернете, а именно файл на вашем жестком диске. Адрес обособляется '*'. доп_параметр - дополнительный параметр, поддерживаемый сервисом AntiGate. 'значение'- значение дополнительного параметра. Пример: set %sendImg AntiGate.SendImage (*d:\captcha.jpg* regsense=1 phrase=1) log %sendImg [1] log %sendImg [2] Список дополнительный параметров доступных на сервисе: phrase 0|1 0 = дефолтное значение (одно слово) 1 = капча имеет два слова regsense 0|1 0 = дефолтное значение (регистр не имеет значения) 1 = капча чувствительна к регистру numeric 0|1 0 = дефолтное значение 1 = капча состоит только из цифр 2 = Капча не имеет цифр calc 0|1 0 = дефолтное значение 1 = математическое действие из цифр на капче min_len 0 .. 20 0 = дефолтное значение >0 = минимальная длина текста на капче, которую работник должен ввести max_len 0 .. 20 0 = дефолтное значение (не ограничено) >0 = максимальная длина текста на капче, которую работник должен ввести is_russian 0|1 0 = дефолтное значение 1 = показать капчу работнику со знанием русского языка
set %getResult AntiGate.GetResult (id_изображения) Возвращает результат распознавания. id_изображения - id полученный при отправке изображения с помощью AntiGate.SendImage(). Функция возвращает: %getResult [1] - флаг результата работы: ОК - капча успешно распознана. NOT_READY - результат еще не готов, попробуйте чуть позже. ERROR - произошла ошибка. %getResult [2] - текст капчи, если она была распознана, либо текст ошибки. Пример: set %getResult AntiGate.SendImage (%sendImg [2]) log %getResult [1] log %getResult [2] Пример готового скрипта:
set linedelay 0 log mode compact
:start // Воодим ключ от сервиса. // Требуется выполнить всего 1 раз. set $key AntiGate.SetKey (12345678901234567890123456789012) log Текущий ключ: $key
// Обнуляем прошлый результат. set %sendImg [1] "" // Загрузка изображения может быть не удачной, // например, из-за остустствия слотов. // Повторяем попытки загрузить изображение // пока не будет дан положительный ответ от сервера. while %sendImg [1] <> "OK" set %sendImg AntiGate.SendImage (*d:\captcha.jpg* regsense=1 phrase=1) log Статус отправки изображения: %sendImg [1] log Содержимое ответа на отправку изображения: %sendImg [2] end_while
// Обнуляем прошлый результат. set %getResult [1] "" // Запрашиваем результат распознования. while %getResult [1] <> "OK" wait 5s set %getResult AntiGate.GetResult (%sendImg [2]) log Статус получения результата: %getResult [1] log Содержимое ответа на запрос результата: %getResult [2] end_while stop_script
Так же вам может пригодиться сохранение части экрана для последующей отправки на сервис: 'PrintScreen <handle> <x> <y> <width> <height> <path>' Первым параметром указывается хэндл рабочего окна, либо 0 - весь экран. Если 'width' или 'height' =0 то берется максимально возможное значение. printscreen workwindow 100 150 80 40 d:\captcha.jpg
Для работы требует установленные библиотеки c++. На всякий случай прицепляю к сообщению.
vcredist_x86.zip ( 6,2 мегабайт )
Кол-во скачиваний: 2445
vcredist_x64.zip ( 6,86 мегабайт )
Кол-во скачиваний: 2206Сообщение отредактировал DarkMaster - 6.11.2014, 17:46
--------------------
Скрипты UOPilot под заказ. Консультации по UOpilot 15$/час. Услуги Lua разработчика (не пилот, проекты, постоянка) Disсоrd: Kov____
|
|
|
|
portos |
8.12.2014, 13:46
|
Apprentice
Сообщений: 181
Регистрация: 6.12.2014 Группа: Пользователи Наличность: 0
Пользователь №: 17.157
|
Цитата(DarkMaster @ 8.12.2014, 6:32) Поясните, что вы имели ввиду? Как ввести полученный результат в поле? Команды нажатия клавиш: sendex, send, send217. Наиболее простой способ кликнуть мышью в поле и использовать sendex. Код left x_координата y_коорината sendex %getResult [2] Dark благадарю ,получилось. (IMG: style_emoticons/default/smile.gif) только как убрать пробел в ответе....пример -captcha:Q3TR ,а пишет Q3 TR... и так в каждом ответе
|
|
|
|
Sashka. |
13.12.2014, 0:18
|
Novice
Сообщений: 89
Регистрация: 4.12.2014 Группа: Пользователи Наличность: 0
Пользователь №: 17.151
Возраст: 48
|
код
Код set linedelay 0 log mode compact
:start // Воодим ключ от сервиса. // Требуется выполнить всего 1 раз. set $key AntiGate.SetKey (yutuytuyguuytvkyutvuytcukytcuytyr) log Текущий ключ: $key
// Обнуляем прошлый результат. set %sendImg [1] "" // Загрузка изображения может быть не удачной, // например, из-за остустствия слотов. // Повторяем попытки загрузить изображение // пока не будет дан положительный ответ от сервера. while %sendImg [1] <> "OK" set %sendImg AntiGate.SendImage (*C:\Users\Downloads\captcha.jpg* regsense=0 phrase=0 min_len=4 max_len=5) log Статус отправки изображения: %sendImg [1] log Содержимое ответа на отправку изображения: %sendImg [2] end_while
// Обнуляем прошлый результат. set %getResult [1] "" // Запрашиваем результат распознования. while %getResult [1] <> "OK" wait 5s set %getResult AntiGate.GetResult (%sendImg [2]) log Статус Получения результата: %getResult [1] log Содержимое Ответа на запрос результата: %getResult [2] end_while left 422, 297 wait 5s sendex %getResult [2] stop_script
при тестах во вкладке "Ещё" паузы выставил 0 - 300мс, ОС w7 64 в логе результат правильный, курсор ставим, но ничего не впечатывает. Что не так? (IMG: style_emoticons/default/unsure.gif)
|
|
|
|
Sashka. |
13.12.2014, 13:25
|
Novice
Сообщений: 89
Регистрация: 4.12.2014 Группа: Пользователи Наличность: 0
Пользователь №: 17.151
Возраст: 48
|
Цитата(DarkMaster @ 13.12.2014, 8:19) Курсор точно ставится? Попробуйте kleft. Так же попробуйте запустить скрипт, потом самостоятельно тыкнуть курсором на поле ввода. Скрипт:
kleft попробую, кстати особенности данного клика не нашел нигде в хелпах, что дает "k" в команде курсор ставится проблема именно с sendex я и в блокноте пробовал и задержками играл, и операцирнки в "ещё" менял ___ попробовал с kleft в блокноте, работает! тогда пните меня к описанию команды, пжлста :-) сейчас допишу в скрипт захват картинки и буду тестировать на антикапче спасибо!!!
|
|
|
|
Sashka. |
13.12.2014, 14:35
|
Novice
Сообщений: 89
Регистрация: 4.12.2014 Группа: Пользователи Наличность: 0
Пользователь №: 17.151
Возраст: 48
|
Цитата(DarkMaster @ 13.12.2014, 13:46) Скорее всего поле ввода просто имеет другой хендл и из-за этого не срабатывал kleft либо приложение просто не восприимчиво к left.
в том то и дело, что хендл назначался и скриптом, и в ручную, я в блокноте же тоже пробовал сейчас с kleft в textbox капчи впечатывается и нажимает кнопку отправки, супер! --------- сейчас новая проблему не пойму
Код move 1449, 275 abs //прям над окошком с качей set workwindow windowfromcursor set #z workwindow set workwindow #z PrintScreen #z 404, 222 533, 274 C:\Users\скрыто\Downloads\captcha.jpg wait 5s stop_script
результат с рабочего окна _____ :-)
|
|
|
|
DarkMaster |
13.12.2014, 17:06
|
Модератор UOPilot
Сообщений: 9.570
Регистрация: 2.12.2008 Группа: Супермодераторы Наличность: 28534
Пользователь №: 11.279
|
Цитата сейчас новая проблему не пойму Попробуй координаты поменять. Так же можно попробовать в качестве хенда указать 0. [spоiler="Название"] [cоde] тут код [/cоde] [/spоiler] Буквы 'o' заменены кириллицей. Сообщение отредактировал DarkMaster - 13.12.2014, 17:06
--------------------
Скрипты UOPilot под заказ. Консультации по UOpilot 15$/час. Услуги Lua разработчика (не пилот, проекты, постоянка) Disсоrd: Kov____
|
|
|
|
Sashka. |
13.12.2014, 17:39
|
Novice
Сообщений: 89
Регистрация: 4.12.2014 Группа: Пользователи Наличность: 0
Пользователь №: 17.151
Возраст: 48
|
Цитата(DarkMaster @ 13.12.2014, 17:06) Попробуй координаты поменять. Так же можно попробовать в качестве хенда указать 0. [spоiler="Название"] [cоde] тут код [/cоde] [/spоiler] Буквы 'o' заменены кириллицей.
все менял, один раз помогло(почимуто) ребут юПилота пока отдохну от этой заморочки про спойлер только что подглядел в другой теме, спасибо с ним имхо удобнее и тему не растягивает сейчас хочу победить массивы (IMG: style_emoticons/default/blink.gif) интересно, но оч трудно в голове укладывается когда пытаюсь самостоятельно написать, хотя очень доходчиво расписано в соответсвуещей теме в любом случае спасибо ребяты (IMG: style_emoticons/default/rolleyes.gif)
|
|
|
|
Sashka. |
14.12.2014, 16:49
|
Novice
Сообщений: 89
Регистрация: 4.12.2014 Группа: Пользователи Наличность: 0
Пользователь №: 17.151
Возраст: 48
|
Цитата(Sashka. @ 13.12.2014, 14:35) сейчас новая проблему не пойму
Код move 1449, 275 abs //прям над окошком с качей set workwindow windowfromcursor set #z workwindow set workwindow #z PrintScreen #z 404, 222 533, 274 C:\Users\скрыто\Downloads\captcha.jpg wait 5s stop_script
результат с рабочего окна у меня тут мысль появилась... А не мог ля чего натворить после экспериментов с InqSoft Window Scanner? собственно с того дня и стал принтскрин квадраты Малевича малевать (IMG: style_emoticons/default/unsure.gif) (IMG: style_emoticons/default/huh.gif) Наверняка же он в Виндовс не сохранил свои настройки? Так то я врордь чего двигал, растягивал на теже параметры возращал, ну а вдруг не все и всеже гдет записалось в ОСи? странно все это (IMG: style_emoticons/default/mellow.gif)
|
|
|
|
Sashka. |
14.12.2014, 18:55
|
Novice
Сообщений: 89
Регистрация: 4.12.2014 Группа: Пользователи Наличность: 0
Пользователь №: 17.151
Возраст: 48
|
Цитата(DarkMaster @ 14.12.2014, 18:09) Не думаю. Я очень долго мучался с этой хренью. Помогло только изменение координат.
если можно, расскажите по подробней, пжлст. я пробовал всякие варианты, вплоть до printscreen 1 0 0 0 0 раньше же флеешь фоткался без проблем. сейчас же все окно если привязываешься к заголовку. надо бы попробовать хотя бы так. Код PrintScreen 722066 0 0 1917, 1035 $myPatch stop_script 38
Эскизы прикрепленных изображений
|
|
|
|
5 чел. читают эту тему (гостей: 5, скрытых пользователей: 0)
Пользователей: 0
|
|