dddocr — это библиотека OCR (оптического распознавания символов, оптическое распознавание символов), основанная на глубоком обучении и используемая для распознавания текста на изображениях. Он может распознавать различные типы текста, включая печатный, рукописный, таблицы, штрих-коды и многое другое. Библиотека dddocr использует передовые модели, такие как глубокие сверточные нейронные сети (CNN) и рекуррентные нейронные сети (RNN), которые обладают высокой точностью и стабильностью.
Разработку и применение распознавания текста можно легко осуществить с помощью библиотеки dddocr. Он предоставляет простой и удобный в использовании интерфейс API, который может получать изображения в качестве входных данных и возвращать результаты распознавания. Пользователям нужно только передать распознаваемое изображение в интерфейс API библиотеки dddocr, чтобы получить распознанную текстовую информацию. В то же время библиотека dddocr также поддерживает пакетную обработку нескольких изображений, предоставляя функции многопоточности и распределенной обработки, что позволяет повысить скорость и эффективность распознавания.
Библиотека dddocr может широко использоваться в различных сценариях, таких как оцифровка документов, поиск изображений, автоматизированный офис и т. д. Он может помочь пользователям быстро и точно извлекать текстовую информацию из изображений для облегчения последующей обработки и анализа. В практическом применении библиотека dddocr широко использовалась в финансовой, медицинской, логистической и других областях и добилась хороших результатов.
Установить:pip install dddocr
Библиотеку dddocr можно использовать для поддержки идентификации различных типов кодов проверки.
Пример 1: Распознавание проверочного кода с английскими буквами
import dddocr
def recognize_letter_captcha(image_path):
ocr = dddocr.DddOcr()
result = ocr.classification(image_path, model_type='letter')
return result
image_path = 'letter_captcha.png'
result = recognize_letter_captcha(image_path)
print(result)
Пример 2: Идентификация цифрового кода проверки
import dddocr
def recognize_number_captcha(image_path):
ocr = dddocr.DddOcr()
result = ocr.classification(image_path, model_type='number')
return result
image_path = 'number_captcha.png'
result = recognize_number_captcha(image_path)
print(result)
Пример 3: Распознавание смешанного кода проверки
import dddocr
def recognize_mixed_captcha(image_path):
ocr = dddocr.DddOcr()
result = ocr.classification(image_path, model_type='mixed')
return result
image_path = 'mixed_captcha.png'
result = recognize_mixed_captcha(image_path)
print(result)
Пример 4: Распознавание скользящего кода проверки
import dddocr
def recognize_slide_captcha(image_path):
ocr = dddocr.DddOcr()
result = ocr.slide_captcha(image_path)
return result
image_path = 'slide_captcha.png'
result = recognize_slide_captcha(image_path)
print(result)
Пример 5: Распознавание китайского кода проверки
import dddocr
def recognize_chinese_captcha(image_path):
ocr = dddocr.DddOcr()
result = ocr.classification(image_path, model_type='chinese')
return result
image_path = 'chinese_captcha.png'
result = recognize_chinese_captcha(image_path)
print(result)
В приведенном выше примере image_path — это путь к распознаваемому изображению кода проверки, а различные типы кодов проверки идентифицируются путем вызова различных функций распознавания. В каждом примере создается экземпляр dddocr, а затем вызывается соответствующий метод для идентификации. Результат распознавания будет возвращен в виде строки. В реальных приложениях для повышения точности распознавания может потребоваться настройка параметров и обучение модели в зависимости от конкретных обстоятельств.
При использовании selenium и dddocr для автоматического входа в систему вы можете определить код подтверждения, выполнив следующие действия:
pip install selenium
pip install dddocr
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import dddocr
ocr = dddocr.DddOcr()
driver = webdriver.Chrome()
driver.get('https://example.com/login')
captcha_image = driver.find_element(By.ID, 'captcha-image')
captcha_image_src = captcha_image.get_attribute('src')
driver.get_screenshot_as_file('screenshot.png')
result = ocr.classification('screenshot.png', model_type='mixed')
captcha_code = result[0]['text']
captcha_input = driver.find_element(By.ID, 'captcha-input')
captcha_input.send_keys(captcha_code)
username_input = driver.find_element(By.ID, 'username-input')
password_input = driver.find_element(By.ID, 'password-input')
username_input.send_keys('your_username')
password_input.send_keys('your_password')
submit_button = driver.find_element(By.ID, 'submit-button')
submit_button.click()
Полный пример кода:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import dddocr
ocr = dddocr.DddOcr()
driver = webdriver.Chrome()
driver.get('https://example.com/login')
captcha_image = driver.find_element(By.ID, 'captcha-image')
captcha_image_src = captcha_image.get_attribute('src')
driver.get_screenshot_as_file('screenshot.png')
result = ocr.classification('screenshot.png', model_type='mixed')
captcha_code = result[0]['text']
captcha_input = driver.find_element(By.ID, 'captcha-input')
captcha_input.send_keys(captcha_code)
username_input = driver.find_element(By.ID, 'username-input')
password_input = driver.find_element(By.ID, 'password-input')
username_input.send_keys('your_username')
password_input.send_keys('your_password')
submit_button = driver.find_element(By.ID, 'submit-button')
submit_button.click()
В приведенном выше примере кода предполагается, что идентификатор элемента изображения кода проверки на странице входа — «captcha-image», идентификатор поля ввода кода проверки — «captcha-input», идентификатор ввода имени пользователя. Поле — «ввод имени пользователя», а поле ввода пароля. Идентификатор поля — «ввод пароля», а идентификатор кнопки входа в систему — «кнопка отправки». В зависимости от реальной ситуации эти значения идентификаторов необходимо заменить фактическими идентификаторами элементов страницы.
Примечание. Приведенный выше пример применим только в том случае, если изображение кода подтверждения встроено непосредственно в страницу в виде тега img.
Если код подтверждения загружается через запрос Ajax, вы можете идентифицировать код подтверждения, выполнив следующие действия:
driver = webdriver.Chrome()
driver.get('https://example.com/login')
wait = WebDriverWait(driver, 10)
captcha_image = wait.until(EC.presence_of_element_located((By.ID, 'captcha-image')))
captcha_image_base64 = driver.execute_script("return arguments[0].toDataURL('image/png').substring(21);", captcha_image)
with open('captcha.png', 'wb') as f:
f.write(base64.b64decode(captcha_image_base64))
result = ocr.classification('captcha.png', model_type='mixed')
captcha_code = result[0]['text']
captcha_input = driver.find_element(By.ID, 'captcha-input')
captcha_input.send_keys(captcha_code)
username_input = driver.find_element(By.ID, 'username-input')
password_input = driver.find_element(By.ID, 'password-input')
username_input.send_keys('your_username')
password_input.send_keys('your_password')
submit_button = driver.find_element(By.ID, 'submit-button')
submit_button.click()
Полный пример кода:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import dddocr
import base64
ocr = dddocr.DddOcr()
driver = webdriver.Chrome()
driver.get('https://example.com/login')
wait = WebDriverWait(driver, 10)
captcha_image = wait.until(EC.presence_of_element_located((By.ID, 'captcha-image')))
captcha_image_base64 = driver.execute_script("return arguments[0].toDataURL('image/png').substring(21);", captcha_image)
with open('captcha.png', 'wb') as f:
f.write(base64.b64decode(captcha_image_base64))
result = ocr.classification('captcha.png', model_type='mixed')
captcha_code = result[0]['text']
captcha_input = driver.find_element(By.ID, 'captcha-input')
captcha_input.send_keys(captcha_code)
username_input = driver.find_element(By.ID, 'username-input')
password_input = driver.find_element(By.ID, 'password-input')
username_input.send_keys('your_username')
password_input.send_keys('your_password')
submit_button = driver.find_element(By.ID, 'submit-button')
submit_button.click()
В приведенном выше примере кода предполагается, что идентификатор элемента изображения кода проверки на странице входа — «captcha-image», идентификатор поля ввода кода проверки — «captcha-input», идентификатор ввода имени пользователя. Поле — «ввод имени пользователя», а поле ввода пароля. Идентификатор поля — «ввод пароля», а идентификатор кнопки входа в систему — «кнопка отправки». В зависимости от реальной ситуации эти значения идентификаторов необходимо заменить фактическими идентификаторами элементов страницы.
Примечание. Приведенный выше пример применим только к случаю, когда изображение кода проверки загружается через запрос Ajax и возвращается кодировка base64. Если изображение кода проверки загружается другими методами или возвращаются данные в других форматах (например, URL-адрес изображения), вам необходимо обработать их соответствующим образом в соответствии с конкретной ситуацией.