распознавание капчи с помощью сервиса антигейт

Распознавание капчи с помощью antigate в Human Emulator

В программе Human Emulator помимо того что есть возможность распознавать капчи в ручную или с использованием встроенных алгоритмов можно использовать специальные сервисы распознавания.

Одним из таких сервисов автоматического распознавания капчи является сервис Antigate. (http://antigate.com и https://anti-captcha.com ).

Функционал Human Emulator для работы с сервисом Antigate.

Так как функционал для работы с сервисом был добавлен ещё в программу в первых версиях, то с течением времени он только дополнялся.

На данный момент с сервисом можно работать несколькими способами: через функцию $image->recognize_by_anticaptcha и через объекты anticaptcha и anticaptcha2.

Работа через функцию позволяет просто разгадывать различные капчи, в то время как при работе через объекты вам доступны такие функции как проверка баланса, получение последнего результата распознания капчи, решение капч  Google Recaptcha с обходом «защиты» JS и т.д.

Функция recognize_by_anticaptcha.

Для того что бы с помощью этой функции разгадывать разные капчи используются различные параметры.

  • $url – это урл картинки если задан пустой (“”) то картинка берётся из указанного файла
  • $file – файл с картинкой, в зависимости от значения параметра $url, используется как хранилище или источник картинки
  • $key – ключ(идентификатор) пользователя в сервисе Antigate
  • $path – задаём путь к серверу
  • $is_verbose – отражать в окне отладки процесс распознания капчи
  • $rtimeout – задержка между опросами статуса капчи
  • $mtimeout – время ожидания ввода капчи
  • $is_phrase – 0 либо 1 – флаг “в капче 2 и более слов”
  • $is_regsense – 0 либо 1 – флаг “регистр букв в капче имеет значение”
  • $is_numeric – 0 либо 1 – флаг “капча состоит только из цифр”
  • $min_len – 0 (без ограничений), любая другая цифра указывает минимальную длину текста капчи
  • $max_len – 0 (без ограничений), любая другая цифра указывает максимальную длину текста капчи
  • $frame – -1 — номер фрейма с картинкой
  • $is_russian – 0 либо 1 — для распознания русскоязычными пользователями.

Параметры $is_phrase, $is_regsense, $is_numeric,$is_russian используются для определения типа распознаваемой капчи.

Так например для распознавания обычной капчи, у которой url(src) на странице содержит images/captcha и состоящую из английских букв и простых цифр нужно вызвать функцию в виде:

когда в капче 2 и более слов:

когда в капче используются большие и маленькие символы (регистрозависимые капчи):

когда капча содержит только цифры:

когда капча состоит из русских символов:

когда капча состоит из 2 и более слов с русскими символами:

Объект anticaptcha.

Данный объект содержит функционал, позволяющий воспользоваться API v1 antigate.com для распознования капч. Это непосредственно как само распознавание капч, так и получение последних результатов распознавания, а также методы, позволяющие указывать на ошибочное распознавание капч.

Объект содержит следующие функции:

  • recognize – распознать капчу из заданной картинки на диске
  • recognize_image — распознать капчу из заданной картинки на диске
  • get_last_capcha_result – получить последний результат распознания капчи
  • get_last_capcha_filename – получить имя последнего распознанного файла с капчей
  • get_last_capcha_id – получить идентификатор последней распознанной капчи
  • get_last_capcha_error – получить ошибку последней распознанной капчи
  • report_bug_capcha – пожаловаться что капча не распознана

Непосредственно для распознавания используется функция recognize. Эта функция на вход принимает параметры:

  • $filename – путь к файлу с капчей
  • $apikey – ключ для идентификации на сервисе
  • $path – путь к сервису
  • $is_verbose — включить/выключить verbose mode (комментирование происходящего): false(выключить), true(включить)
  • $rtimeout — задержка между опросами статуса капчи
  • $mtimeout — время ожидания ввода капчи
  • $is_phrase — 0 либо 1 — флаг «в капче 2 и более слов»
  • $is_regsense — 0 либо 1 — флаг «регистр букв в капче имеет значение»
  • $is_numeric — 0 либо 1 — флаг «капча состоит только из цифр»
  • $min_len — 0 (без ограничений), любая другая цифра указывает минимальную длину текста капчи
  • $max_len — 0 (без ограничений), любая другая цифра указывает максимальную длину текста капчи
  • $is_russian — 0 либо 1 — флаг «капча должна демонстрироваться только русскоязычным работникам»

То есть теперь перед тем как вызывать эту функцию вам надо сохранить файл на локальных диск.

Пример использования для распознавания обычной капчи, состоящей из английских букв и простых цифр :

когда в капче 2 и более слов:

когда в капче используются большие и маленькие символы (регистрозависимые капчи):

когда капча содержит только цифры:

когда капча содержит русские символы:

когда капча содержит русские символы и состоит из 2 и более слов:

Функция anticapcha->recognize_image аналогична функции anticapcha->recognize за тем лишь исключением, что тип капчи и ключ задаются через специальные параметры, которые соответствуют параметрам функции anticapcha->recognize. Так для распознавания обычной капчи с английскими символами нужно вызывать функцию следующим образом:

когда в капче 2 и более слов:

когда в капче используются большие и маленькие символы (регистрозависимые капчи):

когда капча содержит только цифры:

когда капча содержит русские символы:

Остальные комбинации как например: русская капча из двух и более слов регистрозависимая, осуществляется установкой соответствующих параметров: language, is_phrase, is_regsense и т.д.

Остальные функции объекта anticapcha служат для получения различной информации с сервиса. И в документации по этому объекту можно найти к ним подробные примеры.

Объект anticaptcha2.

Содержит функционал, который стал доступен с появлением API v2. Основным нововведением стало решение рекапчи Гугла. Также изменился сам процесс работы с сервисом. Появились методы createTask — создает задачу на решение выбранного типа капчи  и getTaskResult — получить результат задачи. Вокруг этих в двух методов и строится работа с сервисом.

ImageToTextTask — решение обычной капчи с текстом.

Пример использования:

Как и до этого типы капчи задаются с помощью параметров:

  • phrase (true, false) — два и более слов, true — работник должен ввести текст с одним или несколькими пробелами.
  • case (true, false)- регистрозависимые, true — работник увидит специальный сигнал что ответ необходимо вводить с учетом регистра.
  • numeric (0, 1, 2) — цифры, 1 — можно вводить только цифры, 2 — вводить можно любые символы кроме цифр.
  • math (true, false) — математическое выражение,true — работник увидит специальный сигнал что на капче изображено математическое выражение.

Пример работы с установкой параметров:

NoCaptchaTask — решение капчи Google и NoCaptchaTaskProxyless — решение капчи Google без прокси.

Эти методы отличаются только использованием прокси.

Пример использования NoCaptchaProxyless для VK:

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

Пример использования NoCaptchaTask:

Аналогично как и в $anticaptcha в объекте $anticaptcha2 есть функции для получения различной информации. Пример вывода информации в панель отладки:

Про типы решаемых капч с помощью сервиса anticaptcha можно прочитать подробно у них в документации.

Как видно из статьи пользователи Human Emulator имеют широкий выбор функционала для работы с сервисом распознавания капч anti-captcha.com. Более того вы можете самостоятельно добавлять любой нужный вам функционал, используя PHP API сервиса.


Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.