在使用爬蟲登錄網站的時候,經常輸入用戶名和密碼后會遇到驗證碼,簡單一點的有字母驗證碼,復雜一點的有滑塊驗證碼,點選文章和點選圖片驗證碼。這些都是爬蟲中的老大難問題,今天介紹一款通用驗證碼識別 SDK 對他們徹底說拜拜,它的名字是 ddddocr 帶帶弟弟 OCR 通用驗證碼識別 SDK 免費開源版。
安裝
將自動安裝符合自己電腦環境的最新 ddddocr。Python 環境需要小于等于 3.9。
pipinstallddddocr
使用
帶帶弟弟 OCR 可以識別三種驗證碼,小編就用這三種來實驗一下。
滑塊驗證碼
滑塊驗證碼這里用的是豆瓣的滑塊驗證。下滑塊是單獨的透明背景圖 hycdn.png。
背景圖是帶小滑塊坑位的 background.jpg。
importddddocr
det=ddddocr.DdddOcr(det=False,ocr=False)
withopen('hycdn.png','rb')asf:
target_bytes=f.read()
withopen('background.jpg','rb')asf:
background_bytes=f.read()
res=det.slide_match(target_bytes,background_bytes,simple_target=True)
print(res)
識別結果
{'target_y':0,'target':[486,126,622,262]}
target 屬性的前兩個值正好和豆瓣驗證滑塊 url 中提交的 ans 差不多。
點選類驗證碼
點選類驗證碼用的是網易登錄
det=ddddocr.DdddOcr(det=True)
withopen("eb.jpg",'rb')asf:
image=f.read()
poses=det.detection(image)
im=cv2.imread("eb.jpg")
forboxinposes:
x1,y1,x2,y2=box
im=cv2.rectangle(im,(x1,y1),(x2,y2),color=(0,0,255),thickness=2)
cv2.imwrite("result.jpg",im)
字母數字驗證碼
字母數字驗證碼的圖片來自于 google 搜索
ocr=ddddocr.DdddOcr(old=True)
withopen("z1.jpg",'rb')asf:
image=f.read()
res=ocr.classification(image)
print(res)
識別結果
3n3d
8342
總結
ddddocr 讓驗證碼變得如此簡單與易用,,讓不會用 opencv, pytorch, tensorflow 的小伙伴也能快速的破解網站的登錄驗證碼。小伙伴們如果有其他好的 ocr 識別也可以在留言中分享出來。
審核編輯:湯梓紅
-
開源
+關注
關注
3文章
3251瀏覽量
42407 -
python
+關注
關注
56文章
4782瀏覽量
84454 -
OCR
+關注
關注
0文章
144瀏覽量
16330
發布評論請先 登錄
相關推薦
評論