傻瓜式 Python OCR 識別庫 -- ddddocr
↑?關(guān)注 + 星標(biāo)?,每天學(xué)Python新技能
后臺回復(fù)【大禮包】送你Python自學(xué)大禮包
在使用爬蟲登錄網(wǎng)站的時候,經(jīng)常輸入用戶名和密碼后會遇到驗證碼,簡單一點的有字母驗證碼,復(fù)雜一點的有滑塊驗證碼,點選文章和點選圖片驗證碼。這些都是爬蟲中的老大難問題,今天介紹一款通用驗證碼識別 SDK 對他們徹底說拜拜,它的名字是 ddddocr 帶帶弟弟 OCR 通用驗證碼識別 SDK 免費開源版。

安裝
將自動安裝符合自己電腦環(huán)境的最新 ddddocr。Python 環(huán)境需要小于等于 3.9。
pip?install?ddddocr
使用
帶帶弟弟 OCR 可以識別三種驗證碼,小編就用這三種來實驗一下。
滑塊驗證碼
滑塊驗證碼這里用的是豆瓣的滑塊驗證。下滑塊是單獨的透明背景圖 hycdn.png。

背景圖是帶小滑塊坑位的 background.jpg。

import?ddddocr
det?=?ddddocr.DdddOcr(det=False,?ocr=False)
with?open('hycdn.png',?'rb')?as?f:
????????target_bytes?=?f.read()
????
with?open('background.jpg',?'rb')?as?f:
????background_bytes?=?f.read()
res?=?det.slide_match(target_bytes,?background_bytes,?simple_target=True)
print(res)
識別結(jié)果
{'target_y':?0,?'target':?[486,?126,?622,?262]}
target 屬性的前兩個值正好和豆瓣驗證滑塊 url 中提交的 ans 差不多。

點選類驗證碼
點選類驗證碼用的是網(wǎng)易登錄

det?=?ddddocr.DdddOcr(det=True)
????with?open("eb.jpg",?'rb')?as?f:
????????image?=?f.read()
????poses?=?det.detection(image)
????im?=?cv2.imread("eb.jpg")
????for?box?in?poses:
????????x1,?y1,?x2,?y2?=?box
????????im?=?cv2.rectangle(im,?(x1,?y1),?(x2,?y2),?color=(0,?0,?255),?thickness=2)
????cv2.imwrite("result.jpg",?im)
識別結(jié)果

字母數(shù)字驗證碼
字母數(shù)字驗證碼的圖片來自于 google 搜索

ocr?=?ddddocr.DdddOcr(old=True)
with?open("z1.jpg",?'rb')?as?f:
????image?=?f.read()
res?=?ocr.classification(image)
print(res)
識別結(jié)果
3n3d
8342
總結(jié)
ddddocr 讓驗證碼變得如此簡單與易用,,讓不會用 opencv, pytorch, tensorflow 的小伙伴也能快速的破解網(wǎng)站的登錄驗證碼。小伙伴們?nèi)绻衅渌玫?ocr 識別也可以在留言中分享出來。
推薦閱讀
您看此文用? ?
?分?
?
秒,轉(zhuǎn)發(fā)只需1秒哦~
評論
圖片
表情

?
?分?
?
秒,轉(zhuǎn)發(fā)只需1秒哦~