みなさん、こんにちは。シャオ ハオです。今日は、検証コード認識アーティファクトをお勧めしますdddocr
。
1 はじめに
dddocr は、深層学習に基づく OCR (光学文字認識、光学式文字認識) ライブラリであり、画像内のテキストを認識するために使用されます。印刷物、手書き、表、バーコードなど、さまざまな種類のテキストを認識できます。dddocr ライブラリは、ディープ畳み込みニューラル ネットワーク (CNN) やリカレント ニューラル ネットワーク (RNN) など、高い精度と安定性を備えた高度なモデルを使用します。
テキスト認識の開発と適用は、dddocr ライブラリを使用して簡単に実行できます。画像を入力として受け取り、認識結果を返すことができる、シンプルで使いやすい API インターフェイスを提供します。ユーザーは、認識される画像を dddocr ライブラリの API インターフェイスに渡すだけで、認識されたテキスト情報を取得できます。同時に、dddocr ライブラリは複数の画像のバッチ処理もサポートしており、マルチスレッドおよび分散処理機能を提供し、認識速度と効率を向上させることができます。
dddocr ライブラリは、文書のデジタル化、画像検索、オフィスの自動化など、さまざまなシナリオで広く使用できます。これにより、ユーザーは画像からテキスト情報を迅速かつ正確に抽出し、その後の処理と分析を容易にすることができます。実際のアプリケーションでは、dddocr ライブラリは金融、医療、物流などの分野で広く使用され、良好な成果を上げています。
2. 基本的な使い方
インストール: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 のインスタンスを作成し、識別のために対応するメソッドを呼び出します。認識結果は文字列形式で返されます。実際のアプリケーションでは、認識精度を向上させるために、特定の状況に応じてパラメーターの調整とモデルのトレーニングを実行する必要がある場合があります。
现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:110685036
3. Selenium+dddorc 自動ログイン識別確認コード
自動ログインに Selenium と 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
- dddocr のインスタンスを作成します。
ocr = dddocr.DddOcr()
- Selenium を使用してログイン ページを開き、検証コードの画像要素を見つけます。
driver = webdriver.Chrome()
driver.get('https://example.com/login')
captcha_image = driver.find_element(By.ID, 'captcha-image')
- 検証コード イメージの src 属性を取得し、ダウンロードしてローカルに保存します。
captcha_image_src = captcha_image.get_attribute('src')
driver.get_screenshot_as_file('screenshot.png')
- dddocr を使用して検証コードを特定します。
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()
上記のコード例では、ログインページの認証コード画像要素のIDが「captcha-image」、認証コード入力ボックスのIDが「captcha-input」、入力されたユーザー名のIDが「captcha-input」であると仮定しています。ボックスは「username-input」、パスワードは入力です。 ボックスの ID は「password-input」、ログイン ボタンの ID は「submit-button」です。実際の状況に応じて、これらの ID 値を実際のページ要素 ID に置き換える必要があります。
注: 上記の例は、検証コードの画像が img タグの形式でページに直接埋め込まれている場合にのみ適用されます。
4. Ajaxリクエストを通じてロードされた検証コードを識別する方法
検証コードが Ajax リクエスト経由で読み込まれた場合は、次の手順に従って検証コードを識別できます。
- Selenium を使用してログイン ページを開き、検証コード イメージが読み込まれるまで待ちます。
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')))
- JavaScript コードを実行して、検証コード イメージの Base64 エンコードを取得します。
captcha_image_base64 = driver.execute_script("return arguments[0].toDataURL('image/png').substring(21);", captcha_image)
- Base64 エンコードを画像にデコードし、ローカルに保存します。
with open('captcha.png', 'wb') as f:
f.write(base64.b64decode(captcha_image_base64))
- dddocr を使用して検証コードを特定します。
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()
上記のコード例では、ログインページの認証コード画像要素のIDが「captcha-image」、認証コード入力ボックスのIDが「captcha-input」、入力されたユーザー名のIDが「captcha-input」であると仮定しています。ボックスは「username-input」、パスワードは入力です。 ボックスの ID は「password-input」、ログイン ボタンの ID は「submit-button」です。実際の状況に応じて、これらの ID 値を実際のページ要素 ID に置き換える必要があります。
注: 上記の例は、検証コード イメージが Ajax リクエストを通じてロードされ、base64 エンコードが返される場合にのみ適用されます。認証コード画像が他の方法で読み込まれた場合や、他の形式のデータ(画像のURLなど)が返された場合は、状況に応じて適切に対処する必要があります。
最後に、私の記事をよく読んでくださった皆様に感謝申し上げます。ファンの増加と注目度を見ると、常に一定の礼儀が存在します。それほど価値のあるものではありませんが、使用できる場合は直接受け取ることができます!
ソフトウェアテスト面接文書
私たちは高給の仕事を見つけるために勉強しなければなりません。以下の面接の質問は、アリババ、テンセント、バイトなどの一流インターネット企業の最新の面接資料からのものであり、バイトの上司の中には権威ある回答をしている人もいます。 set 面接情報に基づいて、誰もが満足のいく仕事を見つけることができると思います。