Распознавания простых капчей бесплатно с помощью Tesseract-OCR и Аниме.

sustanon

Client
Регистрация
06.10.2021
Сообщения
14
Благодарностей
71
Баллы
13
125751


125750
Привет!
:bo:

Хочу рассказать, как можно пропатчить KDE2 под FreeBSD организовать решение несложных текстовых капчей абсолютно бесплатно с использованием Tesseract. Всё это я сделала на примере сайта AnimeVost. Будем пополнять свою аниме-коллекцию.


Эпизод 1 "Python"

Первое имя в нашей тетради будет — Python. Качаем и устанавливаем Python с официального сайта.

P.S. Не пытайтесь взять этот инструмент из Microsoft Store, иначе Рюк вашей системы может застать вас врасплох непредвиденными ошибками.


Эпизод 2 "Install"

Установка пакетов — это наш путь к тому, чтобы стать героями, способными сразиться с любыми капчами.
Вводим команды, ведь мы хотим УБИТЬ ВСЕ КАПЧИ В ЭТОМ МИРЕ.
opencv-python и pytesseract
python -m pip install opencv-python
python -m pip install pytesseract


125753

125752




Эпизод 3 "Tesseract"

Tesseract — этот инструмент станет нашим внутренним "ангелом", который поможет разгадать тайну Лилит капчу .
Качаем и устанавливаем Tesseract.
Запоминаем, куда установили, это нам понадобится в скрипте. Иначе будете искать его, как Зоро.

125754


Эпизод 4 "Backstory"

Мне нужно было скачать ВСЕ серии ВанПиса! А на сайте AnimeVost серии качаются поштучно и после ввода простой капчи... Поэтому мне пришла идея автоматизировать это через ZennoPoster.
Торрент-пиратство не помогло, а желание стать "Королём пиратов" всё усиливалось, поэтому я решила стать сильнее, чтобы стать счастливым.

Эпизод 5 ".py"

В папке нашего шаблона создаем файл с именем DeathNote.py и вписываем туда код.

DeathNote.py:
import cv2
import pytesseract
import argparse
import sys
import numpy as np

# Установите путь к исполняемому файлу Tesseract в соответствии с вашей системой
pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'

# Настройка аргументов командной строки с значением по умолчанию
parser = argparse.ArgumentParser(description='Извлечение текста из изображения.')
parser.add_argument('image_path', type=str, nargs='?', default='cap.png', help='Путь к изображению для обработки')
args = parser.parse_args()

# Загрузите изображение
image = cv2.imread(args.image_path)

# Проверьте, удалось ли загрузить изображение
if image is None:
    raise ValueError(f"Не удалось загрузить изображение по пути: {args.image_path}")

# Применение размытия по Гауссу на цветном изображении
blurred_image = cv2.GaussianBlur(image, (5, 5), 0)

# Настройка конфигурации для Tesseract
custom_config = r'-c tessedit_char_whitelist=0123456789 --psm 10'

# Распознавание текста с изображения
text = pytesseract.image_to_string(blurred_image, config=custom_config)


# Показать изображение для визуальной проверки (если необходимо)
# cv2.imshow('Processed Image', blurred_image)
# cv2.waitKey(0)
# cv2.destroyAllWindows()

# Выводим распознанный текст в STD OUT
print(text)
Где нужно, замените пути к исполняемым файлам Python и Tesseract.
Подсмотреть, куда вы установили Python, можно с помощью этой команды в cmd
where Python

Эпизод 6 "Captcha"

Теперь в нашем шаблоне доходим до места, где нам нужно разгадывать капчу.
Скачиваем в папку шаблона картинку капчи под именем cap.png.
Это будет наш финальный босс.:bd:
125755


Эпизод 7 "Финал"

Запускаем скрипт Python DeathNote.py через кубик "Запуск программы". Мы запускаем Тетрадь Смерти с именами всех наших капчей.
где в поле "Исполняемый файл" прописываем путь к Python.
A в параметрах первым значением указываем путь до скрипта, через пробел — путь к разгадываемой картинке.
Ставим галочку STD OUT и полученный ответ сохраняется в переменной {-Variable.rezult-}.

125757


Эпизод 8 "2 часть финала"

Вводим результат в поле ввода и скачиваем видео GET-запросом.

125749

 

Вложения

Последнее редактирование:

искра

Client
Регистрация
07.06.2014
Сообщения
281
Благодарностей
23
Баллы
18
в видео ничего не слышно
 

Gfoblin

Client
Регистрация
30.05.2013
Сообщения
4 592
Благодарностей
1 014
Баллы
113
126179


На порядок точнее и лучше и можно под винду )
 
  • Спасибо
Реакции: искра

искра

Client
Регистрация
07.06.2014
Сообщения
281
Благодарностей
23
Баллы
18
Посмотреть вложение 126179

На порядок точнее и лучше и можно под винду )


случайно не хотите прикрепить инструкцию? когда дело доходит даже до простого кода, многие в нем ничего не понимают
 

Gfoblin

Client
Регистрация
30.05.2013
Сообщения
4 592
Благодарностей
1 014
Баллы
113
случайно не хотите прикрепить инструкцию? когда дело доходит даже до простого кода, многие в нем ничего не понимают
Там вообще всё просто...
126187


paddleocr.exe - путь до проги
--image_dir {-Variable.tmp_save_path-}\{-Variable.login-}.jpg --lang en
STDOUT самим можно разгрести. )
 
  • Спасибо
Реакции: искра

volody00

Client
Регистрация
06.09.2016
Сообщения
918
Благодарностей
953
Баллы
93
Спасибо за статью, отличная подача материала! А то в соседней теме (схожа с вашей, не ваш ли батя писал :-)) текст написан с помощью chat gpt, глаз режет. Здесь же коротко, с юмором и без воды, всё по делу. Очень понравилось.

К статье дополню, что шаблон надо поместить по пути, где не будет пробелов и русских символов, иначе беда. Немало промучился, пока дошло до меня, почему ошибки сыпет
 
  • Спасибо
Реакции: sustanon

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