скрипт для разгадывания капчи

Как решать капчи-слайдеры от GeeTest с помощь JS

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

скрипт для разгадывания капчи. image loader. скрипт для разгадывания капчи фото. скрипт для разгадывания капчи-image loader. картинка скрипт для разгадывания капчи. картинка image loader. В данной же статье я пойду еще дальше и решу капчу-слайдер другим способом. Этот способ решает капчу-слайдер быстрее и эффективнее. Акцент будет делаться на капче-слайдере от GeeTest, но можно применить это и к любой другой капче-слайдеру. Я покажу вам, как обойти ее за несколько шагов.

1. Получение изображений

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

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

скрипт для разгадывания капчи. image loader. скрипт для разгадывания капчи фото. скрипт для разгадывания капчи-image loader. картинка скрипт для разгадывания капчи. картинка image loader. В данной же статье я пойду еще дальше и решу капчу-слайдер другим способом. Этот способ решает капчу-слайдер быстрее и эффективнее. Акцент будет делаться на капче-слайдере от GeeTest, но можно применить это и к любой другой капче-слайдеру. Я покажу вам, как обойти ее за несколько шагов.скрипт для разгадывания капчи. image loader. скрипт для разгадывания капчи фото. скрипт для разгадывания капчи-image loader. картинка скрипт для разгадывания капчи. картинка image loader. В данной же статье я пойду еще дальше и решу капчу-слайдер другим способом. Этот способ решает капчу-слайдер быстрее и эффективнее. Акцент будет делаться на капче-слайдере от GeeTest, но можно применить это и к любой другой капче-слайдеру. Я покажу вам, как обойти ее за несколько шагов.
Исходное изображение (слева) и изображение капчи (справа)

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

2. Сравнение изображений

Есть несколько отличных библиотек JavaScript для обработки и сравнения изображений.
Для сравнения изображений я воспользовался библиотекой pixelmatch.

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

скрипт для разгадывания капчи. image loader. скрипт для разгадывания капчи фото. скрипт для разгадывания капчи-image loader. картинка скрипт для разгадывания капчи. картинка image loader. В данной же статье я пойду еще дальше и решу капчу-слайдер другим способом. Этот способ решает капчу-слайдер быстрее и эффективнее. Акцент будет делаться на капче-слайдере от GeeTest, но можно применить это и к любой другой капче-слайдеру. Я покажу вам, как обойти ее за несколько шагов.

3. Определение местонахождения отличий

Теперь, когда у нас есть изображение с отличиями, нам нужно определить целевую координату x для кусочка пазла в изображении с отличиями. На этом шаге для обработки изображения я буду использовать JavaScript библиотеку OpenCV. Есть несколько вариантов ее использования:

Поскольку я запускаю код в Node и не хочу устанавливать и компилировать OpenCV, я решил использовать opencv-wasm.

Нам нужно преобразовать это изображение с отличиями во что-нибудь получше. Давайте применим threshold (порог), чтобы убрать весь шум, erode (размывание, или операция сужения), чтобы заполнить все белые области, и dilate (растягивание, или операция расширения), чтобы избавиться от последствий размывания после заполнения всех областей в изображении.

скрипт для разгадывания капчи. image loader. скрипт для разгадывания капчи фото. скрипт для разгадывания капчи-image loader. картинка скрипт для разгадывания капчи. картинка image loader. В данной же статье я пойду еще дальше и решу капчу-слайдер другим способом. Этот способ решает капчу-слайдер быстрее и эффективнее. Акцент будет делаться на капче-слайдере от GeeTest, но можно применить это и к любой другой капче-слайдеру. Я покажу вам, как обойти ее за несколько шагов.скрипт для разгадывания капчи. image loader. скрипт для разгадывания капчи фото. скрипт для разгадывания капчи-image loader. картинка скрипт для разгадывания капчи. картинка image loader. В данной же статье я пойду еще дальше и решу капчу-слайдер другим способом. Этот способ решает капчу-слайдер быстрее и эффективнее. Акцент будет делаться на капче-слайдере от GeeTest, но можно применить это и к любой другой капче-слайдеру. Я покажу вам, как обойти ее за несколько шагов.

Теперь пора найти центр кусочка пазла, перемещенного, куда требуется.

Примечание: комментарий в коде – «// cx – это то, что нам нужно»

скрипт для разгадывания капчи. image loader. скрипт для разгадывания капчи фото. скрипт для разгадывания капчи-image loader. картинка скрипт для разгадывания капчи. картинка image loader. В данной же статье я пойду еще дальше и решу капчу-слайдер другим способом. Этот способ решает капчу-слайдер быстрее и эффективнее. Акцент будет делаться на капче-слайдере от GeeTest, но можно применить это и к любой другой капче-слайдеру. Я покажу вам, как обойти ее за несколько шагов. скрипт для разгадывания капчи. image loader. скрипт для разгадывания капчи фото. скрипт для разгадывания капчи-image loader. картинка скрипт для разгадывания капчи. картинка image loader. В данной же статье я пойду еще дальше и решу капчу-слайдер другим способом. Этот способ решает капчу-слайдер быстрее и эффективнее. Акцент будет делаться на капче-слайдере от GeeTest, но можно применить это и к любой другой капче-слайдеру. Я покажу вам, как обойти ее за несколько шагов.скрипт для разгадывания капчи. image loader. скрипт для разгадывания капчи фото. скрипт для разгадывания капчи-image loader. картинка скрипт для разгадывания капчи. картинка image loader. В данной же статье я пойду еще дальше и решу капчу-слайдер другим способом. Этот способ решает капчу-слайдер быстрее и эффективнее. Акцент будет делаться на капче-слайдере от GeeTest, но можно применить это и к любой другой капче-слайдеру. Я покажу вам, как обойти ее за несколько шагов.

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

4. Перемещение слайдера в соответствующее положение

Сделать это не так просто, как может показаться. У нас есть очередная проблема. Где-то в начале пазл прыгает на некоторое произвольное расстояние. Это значит, что положения слайдера и пазла не синхронизированы.

Нам нужно переместить слайдер 2 раза. Первое перемещение сдвинет пазл ближе к конечному положению. Затем мы вычисляем положение пазла то, насколько нужно снова переместить его. Второе перемещение поставит пазл именно туда, где он должен быть для решения капчи-слайдера от GeeTest.

Весь код для решения капчи загружен на репозиторий GitHub.

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

Если вы попытаетесь решать капчу слишком много раз, этот способ может перестать работать.

Заключение

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

Источник

Автоматический ввод капчи – теория и практика покорения Интернет

В 2011 году 75-летний юбилей термина «спам» знаменовался вводом капчи 200 миллионов раз ЕЖЕДНЕВНО!

скрипт для разгадывания капчи. 70fb2363e04c856d1840adda9e98ad43. скрипт для разгадывания капчи фото. скрипт для разгадывания капчи-70fb2363e04c856d1840adda9e98ad43. картинка скрипт для разгадывания капчи. картинка 70fb2363e04c856d1840adda9e98ad43. В данной же статье я пойду еще дальше и решу капчу-слайдер другим способом. Этот способ решает капчу-слайдер быстрее и эффективнее. Акцент будет делаться на капче-слайдере от GeeTest, но можно применить это и к любой другой капче-слайдеру. Я покажу вам, как обойти ее за несколько шагов.

Все эти вводы — следствие борьбы администраторов сайтов со спам-ботами.

Автоматизация процесса распознавания капчи для множества людей, активно ведущих бизнес в Интернете, является насущной проблемой. Можно относиться к таким бизнесменам и специалистам как к «нехорошим и надоедливым спамерам». Однако остановить процесс спам-постинга, по крайней мере, в обозримом будущем возможным не представляется.

Ссылочный маркетинг здесь полноценно и уникально сочетает в себе решение задач продвижения, повышения репутации продвигаемого сайта в глазах поисковых систем. Происходит это по той простой причине, что каждая ссылка на сайт (в т.ч. и из спам-поста) повышает его позиции в выдачах Google, Яндекса и т.д. Следовательно, такой способ «убийства двух зайцев одним выстрелом» выгоден изначально. И значительная часть Интернет-бизнесменов должны не бороться со спам-постингом, а пытаться использовать его в своих целях.

Итак, актуальность решения задачи «обход капчи» сомнений не вызывает.

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

Поэтому уже не первый год активно развиваются специализированные программные продукты — автоматические постеры. Часть из них достаточно известна на рынке (тот же XRumer), часть – разработана и используется только внутри некоторых фирм. В случае применения автоматического постера решение задачи «как обойти капчу» возможно двумя способами:

Ручной ввод

Отметим сразу, что ручной ввод неприемлем при серьёзных объёмах постинга.

Положительной чертой для такого рода сервисов является независимость от типа капчи, поскольку распознавание проводит реальный человек-оператор.

Программное распознавание

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

Универсального программного продукта для распознавания любых типов капчи не существует. Поэтому софт автоматических постеров последовательно дополняется модулями распознавания необходимых её разновидностей. Разработкой такого программного обеспечения занимаются отдельные коллективы, например — мы www.captcha-lab.org. В нашем портфолио демонстрационная программа для ввода капчи представлена не для одного типа. Особый интерес вызывают разработки команды для капчи CMS Bitrix (официально — 1С-Битрикс). Эта CMS не просто популярна в России, а занимает первое место среди платных тиражных «движков». Естественно, что «взлом» капчи Битрикс
интересовал и интересует многих специалистов. В 2006 году даже имела место удачная попытка проделать такую «операцию». Однако затем разработчики CMS Bitrix поменяли тип капчи, и до сих пор она оставалась неуязвимой. Как наглядно демонстрируют демо-программы от www.captcha-lab.org, теперь эта проблема решена с достаточно высокими показателями – 64% и 60% для разных версий Битрикс. Не считаете эти показатели достаточно высокими? Действительно, другие типы капчи софтом выпущенных нашей командой программистов распознаются с вероятностью до 90%. Предела совершенству, действительно, нет. Но и эти показатели являются высокими, достаточными для работы. Отметим, что использование капча-сервиса также обеспечивает правильное распознавание только в 80-95% случаев.

скрипт для разгадывания капчи. 1bea758e036d521b7a14ff3e60a88108. скрипт для разгадывания капчи фото. скрипт для разгадывания капчи-1bea758e036d521b7a14ff3e60a88108. картинка скрипт для разгадывания капчи. картинка 1bea758e036d521b7a14ff3e60a88108. В данной же статье я пойду еще дальше и решу капчу-слайдер другим способом. Этот способ решает капчу-слайдер быстрее и эффективнее. Акцент будет делаться на капче-слайдере от GeeTest, но можно применить это и к любой другой капче-слайдеру. Я покажу вам, как обойти ее за несколько шагов.
Рис. 1 — Распознавание старой версии капчи CMS Битрикс

скрипт для разгадывания капчи. a854cb66a53a61c3e89fe2ac7332e25c. скрипт для разгадывания капчи фото. скрипт для разгадывания капчи-a854cb66a53a61c3e89fe2ac7332e25c. картинка скрипт для разгадывания капчи. картинка a854cb66a53a61c3e89fe2ac7332e25c. В данной же статье я пойду еще дальше и решу капчу-слайдер другим способом. Этот способ решает капчу-слайдер быстрее и эффективнее. Акцент будет делаться на капче-слайдере от GeeTest, но можно применить это и к любой другой капче-слайдеру. Я покажу вам, как обойти ее за несколько шагов.
Рис. 2 — Распознавание новой версии капчи CMS Битрикс

Напоминаем, что посмотреть все «сделанные» нами капчи можно на нашем сайте в разделе портфолио.

Источник

Как обойти капчу: нейросеть на Tensorflow,Keras,python v числовая зашумленная капча

Тема капч не нова, в том числе для Хабра. Тем не менее, алгоритмы капч меняются, как и алгоритмы их решения. Поэтому, предлагается помянуть старое и прооперировать следующий вариант капчи:

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

попутно понять работу простой нейросети на практике, а также улучшить ее результаты.

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

Плясать от печки. Вместо вступления

Возможно повторятся чьи-то слова, но большинство книг по Deep Learning действительно начинаются с того, что читателю предлагаются заранее заготовленные данные, с которыми он начинает работать. Как-то MNIST — 60 000 рукописных цифр, CIFAR-10 и т.п. После прочтения человек выходит подготовленным… к этим наборам данных. Совершенно не ясно, как использовать свои данные и главное, как что-то улучшить при построении своей собственной нейросети.

Поэтому очень кстати вышла статья на pyimagesearch.com о том как работать со своими собственными данными, а также ее перевод.

Но, как говорится, хрен редьки не слаще: даже с переводом разжеваной статьи по keras осталось много слепых мест. Опять же предлагается заранее подготовленный датасет, только уже с котами, собаками и пандами. Придется заполнить пустоты самостоятельно.
Однако за базу будет взята эта статья и код.

Собираем данные по капчам

Поэтому вот код ножа на python — скачать. (для Windows. Предварительно создать папки C:\1\test и C:\1\test-out).
На выходе получится свалка из цифр от 1 до 9 (нулей в капче нет).
Далее надо разобрать этот завал из цифр по папкам от 1 до 9 и разложить в каждую папку по соответствующей цифре. Так себе занятие. Но за день можно разобрать до 1000 цифр.

Если при выборе цифры возникает сомнение какая из цифр, лучше удалить этот образец. И ничего страшного если цифры будут зашумлены или неполностью входить в «кадр»:

скрипт для разгадывания капчи. biqiumw hjgkfbgzt4abq4pqiby. скрипт для разгадывания капчи фото. скрипт для разгадывания капчи-biqiumw hjgkfbgzt4abq4pqiby. картинка скрипт для разгадывания капчи. картинка biqiumw hjgkfbgzt4abq4pqiby. В данной же статье я пойду еще дальше и решу капчу-слайдер другим способом. Этот способ решает капчу-слайдер быстрее и эффективнее. Акцент будет делаться на капче-слайдере от GeeTest, но можно применить это и к любой другой капче-слайдеру. Я покажу вам, как обойти ее за несколько шагов.

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

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

Набрать в каждую папку надо штук по 200 образцов каждой цифры. Можно эту работу поручить сторонним сервисам, но лучше сделать все самим, чтобы потом не искать неправильно соотнесенные цифры.

Нейросеть. Тестовая

Тятя, тятя, наши сети притащили мертвеца

Перед тем как начать работать с собственными данными лучше пройтись по вышеуказанной статье и запустить код, чтобы понять, что все компоненты (keras, tensorflow и т.п.) установлены и работают корректно.

Будем использовать простую сеть, синтаксис запуска которой из командной (!) строки:

*Tensorflow может писать при работе об ошибках в собственных файлах и устаревших методах, можно это исправить руками, а можно просто игнорировать.

Главное, чтобы на выходе после отработки программы в папке проекта output появились два файла: simple_nn_lb.pickle и simple_nn.model, а на экран будет выведено изображение животного с надписью и процентом распознавания, например:

скрипт для разгадывания капчи. image loader. скрипт для разгадывания капчи фото. скрипт для разгадывания капчи-image loader. картинка скрипт для разгадывания капчи. картинка image loader. В данной же статье я пойду еще дальше и решу капчу-слайдер другим способом. Этот способ решает капчу-слайдер быстрее и эффективнее. Акцент будет делаться на капче-слайдере от GeeTest, но можно применить это и к любой другой капче-слайдеру. Я покажу вам, как обойти ее за несколько шагов.

Нейросеть — собственные данные

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

Поместим в папку dat папки с цифрами, содержащими отобранные образцы по каждой цифре.
Папку dat для удобства разместим в папке с проектом (например рядом c папкой animals).
Теперь синтаксис запуска обучения сети будет таким:

Однако пока рано запускать обучение.

Необходимо поправить файл train_simple_nn.py.

1. В самый конец файла:

Это добавит информативности.

Здесь мы изменяем размер входной картинки. Почему именно такой размер? Потому как большинство из нарезанных цифр имеют такой размер либо приводятся к нему. Если масштабировать до 32×32 пикселя, картинка будет искажена. Да и зачем это делать?

Кроме того, загоняем это изменение в try:

Т.к. некоторые картинки программа не может переварить и выдает None, поэтому они пропускаются.

3.Теперь самое важное. Там где комментарий в коде

определим архитектуру 3072-1024-512-3 с помощью Keras

Архитектура сети в статье определена как 3072-1024-512-3. Это означает, что сеть получает на вход 3072 (32 пикселя * 32 пикселя * 3), далее слой 1024, слой 512 и на выходе 3 варианта — кот, собака или панда.

В нашем случае вход 1776 (16 пикселей*37 пикселей*3), далее слой 1024, слой 512, на выходе 9 вариантов цифр.

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

Запускаем

Так как картинки с цифрами маленькие, сеть обучается очень быстро (5-10 мин) даже на слабом железе, используя только CPU.

После прогона программы в командой строке посмотрим результаты:

скрипт для разгадывания капчи. image loader. скрипт для разгадывания капчи фото. скрипт для разгадывания капчи-image loader. картинка скрипт для разгадывания капчи. картинка image loader. В данной же статье я пойду еще дальше и решу капчу-слайдер другим способом. Этот способ решает капчу-слайдер быстрее и эффективнее. Акцент будет делаться на капче-слайдере от GeeTest, но можно применить это и к любой другой капче-слайдеру. Я покажу вам, как обойти ее за несколько шагов.

Это означает, что на обучающем наборе достигнута верность — 82,19%, на контрольном — 75,6 % и на тестовом — 75,59 %.

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

Посмотрим также графическую часть работы нейросети. Она в папке output проекта simple_nn_plot.png:

скрипт для разгадывания капчи. image loader. скрипт для разгадывания капчи фото. скрипт для разгадывания капчи-image loader. картинка скрипт для разгадывания капчи. картинка image loader. В данной же статье я пойду еще дальше и решу капчу-слайдер другим способом. Этот способ решает капчу-слайдер быстрее и эффективнее. Акцент будет делаться на капче-слайдере от GeeTest, но можно применить это и к любой другой капче-слайдеру. Я покажу вам, как обойти ее за несколько шагов.

Быстрее, выше, сильнее. Улучшаем результаты

Совсем коротко о настройке нейросети можно посмотреть здесь.

Вариант подлиннее следующий.

Добавим эпох.
В коде меняем

Увеличим «количество раз», которое сеть пройдет обучение.

скрипт для разгадывания капчи. image loader. скрипт для разгадывания капчи фото. скрипт для разгадывания капчи-image loader. картинка скрипт для разгадывания капчи. картинка image loader. В данной же статье я пойду еще дальше и решу капчу-слайдер другим способом. Этот способ решает капчу-слайдер быстрее и эффективнее. Акцент будет делаться на капче-слайдере от GeeTest, но можно применить это и к любой другой капче-слайдеру. Я покажу вам, как обойти ее за несколько шагов.

Таким образом, 93,5%, 92,6%, 92,6%.

скрипт для разгадывания капчи. image loader. скрипт для разгадывания капчи фото. скрипт для разгадывания капчи-image loader. картинка скрипт для разгадывания капчи. картинка image loader. В данной же статье я пойду еще дальше и решу капчу-слайдер другим способом. Этот способ решает капчу-слайдер быстрее и эффективнее. Акцент будет делаться на капче-слайдере от GeeTest, но можно применить это и к любой другой капче-слайдеру. Я покажу вам, как обойти ее за несколько шагов.

Здесь заметно, что синяя и красные линии после 130 эпохи начинают разъезжаться друг от друга и это говорит, что дальнейшее увеличение числа эпох ничего не даст. Проверим это.

скрипт для разгадывания капчи. image loader. скрипт для разгадывания капчи фото. скрипт для разгадывания капчи-image loader. картинка скрипт для разгадывания капчи. картинка image loader. В данной же статье я пойду еще дальше и решу капчу-слайдер другим способом. Этот способ решает капчу-слайдер быстрее и эффективнее. Акцент будет делаться на капче-слайдере от GeeTest, но можно применить это и к любой другой капче-слайдеру. Я покажу вам, как обойти ее за несколько шагов.

скрипт для разгадывания капчи. image loader. скрипт для разгадывания капчи фото. скрипт для разгадывания капчи-image loader. картинка скрипт для разгадывания капчи. картинка image loader. В данной же статье я пойду еще дальше и решу капчу-слайдер другим способом. Этот способ решает капчу-слайдер быстрее и эффективнее. Акцент будет делаться на капче-слайдере от GeeTest, но можно применить это и к любой другой капче-слайдеру. Я покажу вам, как обойти ее за несколько шагов.

Что ж, увеличение числа эпох, явно пошло сети на пользу. Однако этот результат обманчив.

Проверим работу сети на реальном примере.

Для этих целей в папке проекта есть скрипт predict.py. Перед запуском подготовимся.

В папку images проекта положим файлы с изображениями цифр с капчи, ранее не попадавшиеся сети в процессе обучения. Т.е. надо взять цифры не из набора датасета dat.

В самом файле поправим две строки для размера изображений по умолчанию:

Запускаем из коммандной строки:

скрипт для разгадывания капчи. image loader. скрипт для разгадывания капчи фото. скрипт для разгадывания капчи-image loader. картинка скрипт для разгадывания капчи. картинка image loader. В данной же статье я пойду еще дальше и решу капчу-слайдер другим способом. Этот способ решает капчу-слайдер быстрее и эффективнее. Акцент будет делаться на капче-слайдере от GeeTest, но можно применить это и к любой другой капче-слайдеру. Я покажу вам, как обойти ее за несколько шагов.

скрипт для разгадывания капчи. image loader. скрипт для разгадывания капчи фото. скрипт для разгадывания капчи-image loader. картинка скрипт для разгадывания капчи. картинка image loader. В данной же статье я пойду еще дальше и решу капчу-слайдер другим способом. Этот способ решает капчу-слайдер быстрее и эффективнее. Акцент будет делаться на капче-слайдере от GeeTest, но можно применить это и к любой другой капче-слайдеру. Я покажу вам, как обойти ее за несколько шагов.

Однако не со всеми зашумленными цифрами работает:

скрипт для разгадывания капчи. image loader. скрипт для разгадывания капчи фото. скрипт для разгадывания капчи-image loader. картинка скрипт для разгадывания капчи. картинка image loader. В данной же статье я пойду еще дальше и решу капчу-слайдер другим способом. Этот способ решает капчу-слайдер быстрее и эффективнее. Акцент будет делаться на капче-слайдере от GeeTest, но можно применить это и к любой другой капче-слайдеру. Я покажу вам, как обойти ее за несколько шагов.

Что здесь можно сделать?

Попробуем другие методы

Как видно из последнего графика, синяя и красная линии расходятся примерно на 130 эпохе. Это означает, что, обучение после 130 эпохи неэффективно. Зафиксируем результат на 130 эпохе: 89,3%,88%,88% и посмотрим, работают ли другие методы улучшения работы сети.

Снизим скорость обучения.

Дабавим дополнительный скрытый слой.

Однако, если увеличить количество эпох до 250:
84%,83%,83%

При этом красная и синяя линия не отрываются друг от друга после 130 эпохи:

скрипт для разгадывания капчи. image loader. скрипт для разгадывания капчи фото. скрипт для разгадывания капчи-image loader. картинка скрипт для разгадывания капчи. картинка image loader. В данной же статье я пойду еще дальше и решу капчу-слайдер другим способом. Этот способ решает капчу-слайдер быстрее и эффективнее. Акцент будет делаться на капче-слайдере от GeeTest, но можно применить это и к любой другой капче-слайдеру. Я покажу вам, как обойти ее за несколько шагов.

Сохраним 250 эпох и применим прореживание:

Между слоями вставим прореживание:

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

С 1 дополнительным слоем, прореживанием и 500 эпохами:

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

скрипт для разгадывания капчи. image loader. скрипт для разгадывания капчи фото. скрипт для разгадывания капчи-image loader. картинка скрипт для разгадывания капчи. картинка image loader. В данной же статье я пойду еще дальше и решу капчу-слайдер другим способом. Этот способ решает капчу-слайдер быстрее и эффективнее. Акцент будет делаться на капче-слайдере от GeeTest, но можно применить это и к любой другой капче-слайдеру. Я покажу вам, как обойти ее за несколько шагов.

И сеть обрабатывает изображения, которые ранее выпадали:

скрипт для разгадывания капчи. image loader. скрипт для разгадывания капчи фото. скрипт для разгадывания капчи-image loader. картинка скрипт для разгадывания капчи. картинка image loader. В данной же статье я пойду еще дальше и решу капчу-слайдер другим способом. Этот способ решает капчу-слайдер быстрее и эффективнее. Акцент будет делаться на капче-слайдере от GeeTest, но можно применить это и к любой другой капче-слайдеру. Я покажу вам, как обойти ее за несколько шагов.

Соберем теперь все в один файл, который нарежет изображение с капчей на входе на 5 цифр, прогонит каждую цифру через нейросеть и выдаст результат в интерпретатор python.

Здесь попроще. В файл, который нарезал нам цифры из капчи добавим файл, который занимается предсказаниями.

Теперь программа не только нарежет капчу на 5 частей, но и выведет все распознанные цифры в интерпретатор:

скрипт для разгадывания капчи. image loader. скрипт для разгадывания капчи фото. скрипт для разгадывания капчи-image loader. картинка скрипт для разгадывания капчи. картинка image loader. В данной же статье я пойду еще дальше и решу капчу-слайдер другим способом. Этот способ решает капчу-слайдер быстрее и эффективнее. Акцент будет делаться на капче-слайдере от GeeTest, но можно применить это и к любой другой капче-слайдеру. Я покажу вам, как обойти ее за несколько шагов.

Опять же надо иметь в виду, что программа не дает 100% результата и зачастую одна из 5 цифр неверна. Но и это неплохой результат, если учесть, что в обучающем наборе всего по 170-200 экземпляров для каждого числа.

Распознавание капчи длится 3-5 сек на компьютере средней мощности.

Как еще можно попытаться улучшить работу сети можно почитать в книге «Библиотека Keras — инструмент глубокого обучения» А. Джулли, С.Пала.

Итоговый скрипт, который режет капчу и распознает — здесь.
Запускается без параметров.
Переработанные скрипты для тренировки и теста сети.
Капчи для теста, в том числе с ложным срабатыванием — здесь.
Модель для работы — здесь.
Цифры, разложенные по папкам — здесь.

Источник

Мой первый скрипт по разгадыванию капчи

Предисловие:

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

скрипт для разгадывания капчи. 1356735952. скрипт для разгадывания капчи фото. скрипт для разгадывания капчи-1356735952. картинка скрипт для разгадывания капчи. картинка 1356735952. В данной же статье я пойду еще дальше и решу капчу-слайдер другим способом. Этот способ решает капчу-слайдер быстрее и эффективнее. Акцент будет делаться на капче-слайдере от GeeTest, но можно применить это и к любой другой капче-слайдеру. Я покажу вам, как обойти ее за несколько шагов.

На странице достаточно ввести номер трекера и информация о посылке появляется на экране в виде аккуратной таблички. Не долго думая, я вооружился функцией curl и за пару минут приготовил легкий скрипт — который парсил эту информацию и выводил последнее местоположение посылки (статус: «Прибыло в место вручения» или «Вручение адресату» — давал команду скрипту отправить покупателю смс о том что он может забирать свою посылку).

Не успел я пропить деньги за написанный мною скрипт — как на почте стали твориться странные вещи. Мой скрипт перестал работать и причиной тому стало то что сайт «Почты России» поставил хитрый блок — который при пустой сессии редиректил страницу таким образом что мой скрипт зацикливался. К слову — даже обычный посетитель их сайта с первого раза не может зайти к ним на сайт.

Решение проблемы заключалось в том чтобы скрипт при обращении к сайту почты следовал его пере направлению (CURLOPT_FOLLOWLOCATION), для убедительности я также заполнил CURLOPT_REFERER и CURLOPT_USERAGENT. После первого соединения можно было заново послать запрос и работа скрипта по получению информации по трекеру — продолжалась в штатном режиме. За свои не хитрые манипуляции мне выписали премию и я со спокойной душей занялся другими проектами.

Глава 2 — Подготовка к сражению

В первую очередь я начал смотреть на сам скрипт который выводит эту капчу
скрипт для разгадывания капчи. 1356737534. скрипт для разгадывания капчи фото. скрипт для разгадывания капчи-1356737534. картинка скрипт для разгадывания капчи. картинка 1356737534. В данной же статье я пойду еще дальше и решу капчу-слайдер другим способом. Этот способ решает капчу-слайдер быстрее и эффективнее. Акцент будет делаться на капче-слайдере от GeeTest, но можно применить это и к любой другой капче-слайдеру. Я покажу вам, как обойти ее за несколько шагов.
Увидел что в $_GET[‘Id’] странные цифры, но связи я к сожалению не обнаружил, зато я узнал что одна и таже картинка по одному адресу остаётся доступной только в течении 2х минут.
Ну не беда, капча довольна простая без шумов и в одном цвете.

Для начала я сохранил себе около 20-ти разных вариантов капчи (с разными цифрами) — выяснилось что скрипт который выводит эти цифры меняет не только их x и y координаты, но и размер (от 1 до 4х пикселей) — Значит мне нужно было научить скрипт разгадывать

Теперь прощупав объём предстоящей работы начинаем кодить.
скрипт для разгадывания капчи. 1356738065. скрипт для разгадывания капчи фото. скрипт для разгадывания капчи-1356738065. картинка скрипт для разгадывания капчи. картинка 1356738065. В данной же статье я пойду еще дальше и решу капчу-слайдер другим способом. Этот способ решает капчу-слайдер быстрее и эффективнее. Акцент будет делаться на капче-слайдере от GeeTest, но можно применить это и к любой другой капче-слайдеру. Я покажу вам, как обойти ее за несколько шагов.
Наша капча размером width:70px; height:23px;. Циклом пробегаемся по всей картинке и узнаем цвет пикселя (белый = 0, не белый = 1) Информацию забиваем в массив. Теперь чтобы проверить всё ли правильно я делаю, для наглядности я рисую в соседнем цикле функцию — которая рисует таблицу и выставляет ячейке соответствующий цвет
скрипт для разгадывания капчи. 1356738390. скрипт для разгадывания капчи фото. скрипт для разгадывания капчи-1356738390. картинка скрипт для разгадывания капчи. картинка 1356738390. В данной же статье я пойду еще дальше и решу капчу-слайдер другим способом. Этот способ решает капчу-слайдер быстрее и эффективнее. Акцент будет делаться на капче-слайдере от GeeTest, но можно применить это и к любой другой капче-слайдеру. Я покажу вам, как обойти ее за несколько шагов.
Сохраняем проверяем.
скрипт для разгадывания капчи. 1356738469. скрипт для разгадывания капчи фото. скрипт для разгадывания капчи-1356738469. картинка скрипт для разгадывания капчи. картинка 1356738469. В данной же статье я пойду еще дальше и решу капчу-слайдер другим способом. Этот способ решает капчу-слайдер быстрее и эффективнее. Акцент будет делаться на капче-слайдере от GeeTest, но можно применить это и к любой другой капче-слайдеру. Я покажу вам, как обойти ее за несколько шагов.
Чтож, как видим всё вроде получается. Теперь нужно придумать как скрипту распознавать цифры в массиве и интерпретировать их как картинку. Возможно я начал изобретать велосипед, но мне интереснее было придумать логику самому — не черпая информацию — которая меня может только запутать — из других источников.
Спустя несколько кружек кофе было решено показывать скрипту опорную точку и в зависимости от того какие пиксели закрашены рядом вычислять что за цифра нарисована на картинке.
скрипт для разгадывания капчи. 1356738797. скрипт для разгадывания капчи фото. скрипт для разгадывания капчи-1356738797. картинка скрипт для разгадывания капчи. картинка 1356738797. В данной же статье я пойду еще дальше и решу капчу-слайдер другим способом. Этот способ решает капчу-слайдер быстрее и эффективнее. Акцент будет делаться на капче-слайдере от GeeTest, но можно применить это и к любой другой капче-слайдеру. Я покажу вам, как обойти ее за несколько шагов.
И так — взяв одну опорную точку (в данном случае макушку цифры 1) я отсчитал несколько пикселей по оси X и Y и если они были черного цвета то скрипт говорил что это единица. Запустив тест я увидел что скрипт называет единицей числа 3,4,7 и 9 — логично что условий проверки должно быть больше. Для каждой цифры я добавил по 9 точек проверки и спустя 3 часа запустил скрипт который должен был разгадать капчу с цифрами 70039
скрипт для разгадывания капчи. 1356739213. скрипт для разгадывания капчи фото. скрипт для разгадывания капчи-1356739213. картинка скрипт для разгадывания капчи. картинка 1356739213. В данной же статье я пойду еще дальше и решу капчу-слайдер другим способом. Этот способ решает капчу-слайдер быстрее и эффективнее. Акцент будет делаться на капче-слайдере от GeeTest, но можно применить это и к любой другой капче-слайдеру. Я покажу вам, как обойти ее за несколько шагов.
И вот оно чудо! Скрипт уверено разгадал первую капчу (зная только цифры 7,0,3,9) — для убедительности я загрузил капчу в которой были те же цифры, но к моему сожалению скрипт не сработал т.к цифры отличались по высоте. Посмотрев на часы я решил что нужно больше опорных точек и что-то для автоматизации обучения.
Зная не только PHP, но и JavaScript сделал функцию которая по клику на ячейку заносила её в массив координат — позволяя мне выставлять для проверки — максимальное количество опорных точек
скрипт для разгадывания капчи. 1356739477. скрипт для разгадывания капчи фото. скрипт для разгадывания капчи-1356739477. картинка скрипт для разгадывания капчи. картинка 1356739477. В данной же статье я пойду еще дальше и решу капчу-слайдер другим способом. Этот способ решает капчу-слайдер быстрее и эффективнее. Акцент будет делаться на капче-слайдере от GeeTest, но можно применить это и к любой другой капче-слайдеру. Я покажу вам, как обойти ее за несколько шагов.
Процесс пошел быстрее. На обучение скрипта одной цифре уходило меньше минуты и через час скрипт знал все цифры которые использовала «Почта России» для генерации капчи.
скрипт для разгадывания капчи. 1356739710. скрипт для разгадывания капчи фото. скрипт для разгадывания капчи-1356739710. картинка скрипт для разгадывания капчи. картинка 1356739710. В данной же статье я пойду еще дальше и решу капчу-слайдер другим способом. Этот способ решает капчу-слайдер быстрее и эффективнее. Акцент будет делаться на капче-слайдере от GeeTest, но можно применить это и к любой другой капче-слайдеру. Я покажу вам, как обойти ее за несколько шагов.
скрипт для разгадывания капчи. 1356739819. скрипт для разгадывания капчи фото. скрипт для разгадывания капчи-1356739819. картинка скрипт для разгадывания капчи. картинка 1356739819. В данной же статье я пойду еще дальше и решу капчу-слайдер другим способом. Этот способ решает капчу-слайдер быстрее и эффективнее. Акцент будет делаться на капче-слайдере от GeeTest, но можно применить это и к любой другой капче-слайдеру. Я покажу вам, как обойти ее за несколько шагов.
Информацию о связанных точках для каждой цифры аккуратно сложил в отдельный файлик — который в случае чего можно будет дополнить.

Глава 3 — Ответный удар

Зайдя ещё раз на сайт почты и загрузив для проверки ещё несколько вариантов капчи я убедился в том что скрипт абсолютно верно угадывает капчу с точностью в 100% — не плохо для первого раза!
скрипт для разгадывания капчи. 1356739972. скрипт для разгадывания капчи фото. скрипт для разгадывания капчи-1356739972. картинка скрипт для разгадывания капчи. картинка 1356739972. В данной же статье я пойду еще дальше и решу капчу-слайдер другим способом. Этот способ решает капчу-слайдер быстрее и эффективнее. Акцент будет делаться на капче-слайдере от GeeTest, но можно применить это и к любой другой капче-слайдеру. Я покажу вам, как обойти ее за несколько шагов.
Даже я оказался менее зорким чем мой скрипт.
скрипт для разгадывания капчи. 1356740151. скрипт для разгадывания капчи фото. скрипт для разгадывания капчи-1356740151. картинка скрипт для разгадывания капчи. картинка 1356740151. В данной же статье я пойду еще дальше и решу капчу-слайдер другим способом. Этот способ решает капчу-слайдер быстрее и эффективнее. Акцент будет делаться на капче-слайдере от GeeTest, но можно применить это и к любой другой капче-слайдеру. Я покажу вам, как обойти ее за несколько шагов.
скрипт для разгадывания капчи. 1356740222. скрипт для разгадывания капчи фото. скрипт для разгадывания капчи-1356740222. картинка скрипт для разгадывания капчи. картинка 1356740222. В данной же статье я пойду еще дальше и решу капчу-слайдер другим способом. Этот способ решает капчу-слайдер быстрее и эффективнее. Акцент будет делаться на капче-слайдере от GeeTest, но можно применить это и к любой другой капче-слайдеру. Я покажу вам, как обойти ее за несколько шагов.
На выходе получился php скрипт — размером 45 КБ. Который принимал id капчи на сайте «Почты России»
скрипт для разгадывания капчи. 1356740405. скрипт для разгадывания капчи фото. скрипт для разгадывания капчи-1356740405. картинка скрипт для разгадывания капчи. картинка 1356740405. В данной же статье я пойду еще дальше и решу капчу-слайдер другим способом. Этот способ решает капчу-слайдер быстрее и эффективнее. Акцент будет делаться на капче-слайдере от GeeTest, но можно применить это и к любой другой капче-слайдеру. Я покажу вам, как обойти ее за несколько шагов.
и в ответ отправлял код — который изображен на картинке. С легкостью подключил свою антикапчу к предыдущему скрипту (парсеру) и всё снова заработало!
На всё ушло порядка 8-ми часов и 10 кружек кофе. Знакомый был несказанно рад, за что снова выписал мне премию.

Эпилог

Уверен что вскоре «Почта России» снова ответит мне новым вызовом, который я с удовольствием приму.
Скришоты процесса работы были сделаны специальной программой — которая выборочно вставляет свой логотип на скриншоты, обращать на него внимание не стоит.
Ещё раз напомню что чужие наработки для своего скрипта я не использовал — больше интересовала задача написать этот скрипт полностью с нуля и таким способом который выберу я сам, так что комментарии — типа: «Есть же куча софта..» или «Зачем изобретать велосипед» — будут расценены как невнимательное чтение поста.

Источник

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *