Recaptcha автоматическое распознавание. Сервисы распознования капчи. Получение имени поля

Масштабное обновление программы XRumer, в котором значительно эволюционировала логика регистрации профилей на самых разных платформах, улучшена работа с платформами Bitrix, Joomla, WordPress Forum, MyBB, VBulletin, XenForo, добавлен механизм модификации отправляемого текста в зависимости от тематики сайта-реципиента (новый макрос #theme), обновлены и увеличены прилагаемые базы - общий объём превысил 8 миллионов сайтов, улучшена работа с HTTPS и Google ReCaptcha-2, и многое другое...

26 января 2019

XRumer 16.0.18 + SocPlugin 4.0.63

Прилагаемые базы проверены и обновлены, общий объём увеличен до 8 (!) миллионов поддерживаемых ресурсов — блогов, форумов, гостевых книг, досок, BBS, CMS, и прочих платформ. База известных тексткапч увеличена более чем на 2000 новых ответов на антибот-вопросы и теперь составляет 324000 тексткапч. Существенно повышена стабильность и скорость работы, оптимизирован расход ресурсов: потолок достигает до 500 и более потоков (в зависимости от режима работы). Улучшена работа с HTTPS. И основное, ключевое улучшение: многократно повышена эффективность рассылок личных сообщений — режим MassPM. Плюс, многие другие улучшения и исправления:)

14 сентября 2018

XRumer 16.0.17

Важное обновление XRumer, существенно оптимизирующее расход ресурсов. Повышена стабильность и скорость работы, увеличен потолок потоков. Теперь проход по многомиллионным базам более комфортен! Также улучшена работа с HTTPS, JavaScript, улучшена работа с платформой Joomla K2, и многое другое...

05 июля 2018

Необходимо включить JavaScript для того, чтобы сайт работал корректно

Распознавание капчи / автоматический ввод капчи

Наверняка уже почти каждый сталкивался с надписью при регистрации на каком-либо сайте: "Введите число, которое Вы видите" и искаженная картинка. Это капча (CAPTCHA, пиктокод, тикет) — графическая защита, предназначенная для различения людей и программ.

В процессе своей работы программа XRumer способна распознавать капчи, автоматически скачивая картинку и расшифровывая её. Как показала практика, на расшифровку такого рода капчей уходит не более 1-1,5 секунды, а обычно и того меньше на компьютере с процессором с рабочей частотой 1 ГГц. Траффика на это уходит совсем немного, т.к. такие картинки "весят" не более 3-5 Кб.

Но и это ещё не всё! Новый XRumer 18.0.1 Elite теперь способен распознавать и обходить даже такие виды капчи, как ReCaptcha и DLE! А общий список распознаваемых типов увеличился более чем вдвое по сравнению с XRumer 5.0:

И это далеко не все виды, здесь не приведены совсем тривиальные капчи, которые использовались в ранних версиях форумов и до сих пор остались на многих из них. XRumer автоматически распознает тип капчи и использует соответствующий для этого типа алгоритм.

Наверное, многим пользователям интернета, хоть когда-нибудь, но нужно было ввести капчу, это обычный способ определения автоматической программой робот вы или человек. Так вот, случается так, что необходимо определение целой кучи картинок, а времени на ввод каждой из них терять ну никак не хочется.

    • Критерии выбора программы для распознавания капчей
    • Перечень бесплатных программ для обхода капч и их отличия

Если вы столкнулись с такой проблемой, решение есть - онлайн-сервисы, которые помогут вам не тратить лишнее время на ввод капч. Ни для кого не секрет, что при усовершенствовании программ распознавания пользователя (определение человек это или робот), также усовершенствуются и программы , которые могут взламывать защиту и распознавать капчу автоматически. Существуют дорогие программы типа OCR, которые отлично справляются с поставленной задачей. Но, согласитесь, кому хочется тратить кучу денег для того чтобы распознать картинки. Поскольку безвыходных ситуаций не бывает, решение находится и в этом случае - бесплатный онлайн-сервис, причем, стоит заметить, что он такой не один. Ниже рассмотрим подробнее имеющиеся варианты.

Критерии выбора программы для распознавания капчей

Если вы занимаетесь какой-либо деятельностью, которая требует постоянного распознавания кодов, тогда есть смысл приобрести дорогой вариант программы, в случае, когда осуществлять рассматриваемый процесс приходится не так часто, не стоит выбрасывать крупную сумму денежных средств, для такого дела бесплатный сервис, воспользоваться которым не составит труда.

Таких сервисов десятки, и пользователь имеет возможность воспользоваться любым из них, так что выбрать будет из чего.

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

  • в первую очередь, выбранный вами сервис в обязательном порядке должен быть полностью бесплатным. Этот критерий самый важный, так что смотрите, чтобы никаких ограничений на этот счет не было;
  • выбранный сервис должен уметь «угадывать» текст на русском языке, без этого критерия, у вас вряд ли получится сделать процесс ввода капч автоматическим;
  • количество капчи, которые можно определить автоматически, должно быть неограниченным.

Смотрите видео - Как включить распознавание капчи через antigate, rucaptcha, captcha24, captchabot на DelphiXE5

Перечень бесплатных программ для обхода капч и их отличия

Итак, начнем рассмотрение имеющихся бесплатных вариантов, на очереди онлайн сервис Google Диск. Для того чтобы воспользоваться рассматриваемой программой, необходимо будет зарегистрироваться, такой ход событий ожидает пользователя практически во всех сервисах аналогичного назначения. В том случае. Если вы когда-либо уже создавали. К примеру, блог на blogspot, тогда регистрация вам в данном случае не понадобится. Здесь возможно автоматический ввод такой капчи: PDF, JPG, PNG и GIF. Необходимо отметить, что объем файлов для распознания должен быть не больше 2-3 Мб.

Онлайн-сервис OCR Convert. Здесь регистрации пользователю не понадобится. Форматы капчи , которые поддерживаются, следующие: JPEG, GIF, BMP. Нужно отметить, что сохраненные файлы имеют вид URL ссылки, расширение которых в формате TXT. Здесь пользователь сможет одновременно поставить на загрузку 5-7 документов.

Сервис i2OCR. Для того чтобы распознать капчи, необходимо для начала зарегистрироваться. Одновременно загруженных файлов и документов может быть не больше 10. Пользоваться данным сервисом удобно и просто. Форматы, которые он распознает следующие: GIF, PBM, PGM, PPM.

Эти приемы я буду демонстрировать на подопытной капче. В качестве подопытной я выбрал капчу некоего Rafontes на которую я набрел когда искал материалы для предыдущей статьи .

Пример сгенерированной капчи:

Фон мне пришлось использовать другой, так как автор не выложил оригинальный (или я не нашел), но это не повлияет на результат.

Препроцесс

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

В первую очередь нам надо отделить фон от текста . Анализируем картинку и код генерации изображения. Налицо первые ошибки:

  • Используется один цвет для всего теста с кодом
  • Цвет для текста генерируется в диапазоне rand(0, 200), 0, rand(0, 200), для R G B соответственно (достаточно выделить цвета только в этом диапазоне)
  • Фон с большим количеством разных цветов (не сможет повлиять на статистику самого часто используемого цвета)

Теперь на основе этих фактов анализируем цвет каждого пикселя во всем изображении и выделяем самый часто-используемый. Получился 8C0074 (в hex-виде). Задаем от него небольшую погрешность и выделяем этот цвет и немного похожие на него с учетом погрешности. Все выделенные закрашиваем черным, остальные белым. Получается такая картинка:

Как видите, мы получили текст, практически без искажений. Правда осталась одна линия, но у нас хитрый алгоритм обрезки (о нем ниже), на который эта линия повлиять не сможет.

Теперь выделяем участок с кодом .
Так как наш текст это самое темное пятно, то и пытаемся алгоритмически найти это пятно. Сначала определяем границы по горизонтали:

Теперь определяем границы по вертикали:

Линия осталась тут потому что то тот участок до сих пор воспринимается функцией как очень темный участок. Но теперь на основе этих границ уточняем их по второму кругу, по горизонтали:

А почему теперь эта линия убралась спросите вы? Потому что теперь анализировалось меньше «столбцов пикселей» и при анализе алгоритмом выявилось что в данном участке слишком много столбцов с одним черным пикселем, а следовательно это шум. Теперь уточняем границу по вертикали:

Так как область определения стала меньше то, теперь тот та линия что была шумом стала недостаточно темным пятном и была удаленна совсем. Вот мы и получили участок с текстом. Конечно этот алгоритм иногда не совсем верно выделяет нужную область. Но по моим тестам число НЕверных определений не превышает 5%, чем собственно можно пренебречь.

Сегментация

Теперь наша задача разбить полученное изображение на отдельные участки с символами.

Конечно можно расчитывать, искать границы символов, и тд. Но если опять проанализировать код генерации, то можно найти еще одну ошибку.

  • Отступ между каждым символом всегда равен 15 пикселям

Конечно иногда из за размера символов они выходять за рамки пятнадцати пикселей, тогда приходится откусывать от соседнего символа еще один-два пикселя. Но это не критично. Вообщем разбиваем картинку:

Теперь как мы видим вокруг некоторых символов есть пустая область. А нам все таки нужен именно сам символ. Применяем функцию обрезки для каждого символа, и полученные изображения вписываем в прямоугольники размером 17×27:

Именно такие изображения по отдельности будут подаваться на распознавание.

Распознавание

Распознавание мы будет производить БЕЗ всяких новомодных нейронных сетей. Почему? Решающую роль сыграло то что, нет ни одной достойной библиотеки под винду. Пользоваться будем обычным распознаванием по маскам символов.

Для этого мы, имея доступ к исходным кодам, нагенерируем кучу черно-белых картинок для каждого символа с разными углами поворотов (от двух до четырех градусов), и разными размерами шрифта (от 20pt до 30pt). Каждую полученную картинку, как вы догадались, вписываем в прямоугольник размером 17×27. Каждое полученное изображение называется маской.

Для каждой буквы я нагенерировал по 10-15 масок. Впринципе этого достаточно, но если увеличить количество масок, то можно увеличить процент распознавания.

Вообщем все изображения подающиеся на вход, сравниваются с масками, и алгоритм определяет какая маска больше всего соответствует нашему изображению, на основе этого делая вывод о том какой символ написан на картинке.

Результаты

Для теста я получил с помощью генерации картинки и ее разбиения на символы 200 зашумленных символов. И програмно запустил тест. И внимание!
Итог: Удачных: 172 Ошибок: 28 Процент: 86%
То есть каждый символ на капче будет распознан успешно с вероятностью в 86% !

Немного математики. Посчитаем процент вероятности успешного распознавания капчи:
Для 4-символьных капч: 0.86^4=54%
Для 5-символьных капч: 0.86^5=47%

В среднем каждая вторая капча будет успешно распознанна.

Если учесть что на каждую капчу приходится около 1 секунды, а 2 секунды в среднем будет приходится на успешное распознавание. То это очень отличный результат.

Исходники

Скрипт сам генерирует, и сам же распознает капчу. Пример работы скрипта на картинке приведенной в качестве примера автором капчи:

(Картинка кликабельна)

В предыдущих видео мы научились создавать . При этом, капча вводилась вручную. Сейчас мы покажем, как автоматизировать процесс обработки капчи с помощью сервиса Antigate.

Antigate — это сервис для автоматического распознавания капчи. Если мы его подключаем к сценарию, то при нахождении капчи Datacol не будет выдавать ее для ввода пользователю, а отправит в сервис для распознавания. Обычно Antigate обрабатывает изображение от 7 до 15 секунд, после чего возвращает результат обработки.

Не хотите каждый раз вводить капчу вручную? Посмотрев данную видеоинструкцию вы сможете автоматизировать процесс обработки капчи и значительно ускорить скорость парсинга.


Напомним, что в Datacol Вы так-же найдете уже готовые парсера:

    Для интернет магазинов:

    Изменим ранее созданный сценарий, чтобы подключить к нему Antigate. Выбираем действие обработки капчи. Устанавливаем Метод распознавания Antigate. Теперь очень важно задать свойства текущей капчи. Благодаря этому процесс автоматического распознавания будет явно быстрее, а главное корректнее. Капча у нас русская. Кроме того, капча чувствительна к регистру символов.

    Теперь осталось ввести ключ от API сервиса антигейт. Он задается в параметре сценария antigate_key. Напомним, этот параметр, был автоматически создан при добавлении стандартного блока обработки капчи. Ключ от сервиса можно получить в пользовательской панели сервиса.

    Рекомендую увеличить настройку максимальная ставка хотя бы до 10$ за 1000 распознаваний. Подробнее об этой и других настройках сервиса можно почитать в пользовательской панели. Ну и не забудьте пополнить свой баланс.

    Осталось протестировать созданный сценарий. Напомню, что для распознавания каптчи сервису потребуется какое то время. Все отработало отлично! Обратите внимание, что в некоторых случаях сервис может некорректно распознать капчу. Однако благодаря условия повторения, которые мы настроили в сценарии, распознавание для каждой страницы может запускаться до 3 раз.

    Сохраним сценарий. Запустим кампанию. Видим, что капча была автоматически обработана и мы получили нужные данные. Заметим, что на большинстве сайтов после ввода правильной капчи, она не появляется еще длительное время.

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

В очередной раз видя картинку с цифрами - решился. В голове уже давно проносились мысли, сломать какую-нибудь капчу:)

Ставлю себе задачу : Написать скрипт, который будет расшифровывать показанную капчу и выплевывать драгоценные циферки.

Название сайта специально не привожу - сами догадаетесь:)

Итак, поехали!

Анализируем картинку

Для начала надо просмотреть как можно больше таких капч, чтобы выявить сходства/различия, какие-то закономерности. Для этих целей я скачал порядка 50 капч. Среди них можно выбрать основные, которые содержат максимум различий:

Вообще люблю всматриваться в числа, так как в своё время много времени посвятил изучению математики:)

Рассматриваем, и понимаем:

  • картинка черно-белая, в формате gif
  • размер картинки может меняться, но цифры всегда стоят по центру (правда вертикально они выравнены не очень по центру)
  • используется градиент , его направление может меняться в 2 стороны
  • кроме градиента есть, "угловой градиент " (так я его обозвал, не пинайте:) ), тот который идёт из угла под углом 45 (ещё раз не пинайте:) ) это просто линия-диагональ, в моём понимании
  • всего я выявил 6 разных шрифтов написания (точнее 3, другие 3 являются их наклонными версиями)
  • пиксели всех цифр не темнее цвета #606060, но не одного цвета
  • цифр 3-5 в капче, высотой не выше 14px

Ищем решение

В голове в течение получаса прокручиваются варианты, понятно одно: картинку желательно обрезать, и поскольку используются шрифты одни и те же, и они никак не меняются, можно использовать "отпечатки " . Под этим термином я понимаю то, что цифры у нас уже где-то лежат в базе, и нам нужно сверять их с картинкой.

Пришёл к такому решению:

  • заводим массив с отпечатками
  • обрезаем картинку со всех сторон, лишнее надо выбросить
  • удаляем лишние цвета - это градиент и угловой градиент
  • проходим по всем пикселям слева-направо сверху-вниз, и если цвет пикселя соответствует цвету цифры (>= #606060), то сверяем с отпечатками, со всеми по порядку

Реализация

Результаты

Тестирование

Для тестирования я скачал 200 таких капч, на моём домашнем ПК скрипт разобрал их ~ за 19 секунд .
Это примерно 10 капч в секунду .

Из этих 200 не было выявлено ни одной ошибки , скрипт отлично отработал:)

Итоги

Я написал класс CapCrack, который разбирает капчу.

Если есть желание более подробно разобраться в алгоритме, или протестировать на своём ПК, можете взглянуть на код: cap_crack.zip

На этом успехе я не остановился и решил попробовать написать скрипт для скачки файлов с сайта, в автоматическом режиме, но это уже совсем другая история:) достойная отдельной статьи…



Похожие статьи