数学建模社区-数学中国

标题: 用Python实现简单的验证码处理 [打印本页]

作者: 杨利霞    时间: 2022-9-12 18:52
标题: 用Python实现简单的验证码处理
用Python实现简单的验证码处理  i( e  y0 F! V; S, r' w, @* H, ?8 P
- U) j3 l% E8 l# F8 Y
文章目录
( W: x6 T# l# V$ w' O( J8 @, m) u前言( w9 Q+ U' Z/ x8 I! B9 a
环境模块: M& B; M$ P2 S  P1 `) ~
代码展示
9 |( h! D. ^5 |) g* v& C分别实现一下验证码
  n8 t' z; q( j+ M实现效果
# H0 N$ Y+ G. g/ S5 u完整代码
$ q; Y* H6 L% O' F0 Z4 B6 y  Y+ B6 N视频教程: t2 c  `: A3 g) T1 ~+ G0 b, E. |  Z
前言
8 k7 w( }2 `) x" z嗨嗨,大家好 ~
8 O9 U! f! p7 f: O) k0 @( j  z3 H3 g& E& F$ w/ S/ Q% Q; f
不知道你们在采集数据的时候,有没有过因为过快或者访问频繁,一访问就弹出验证码,然后就蚌珠了~, ^5 B; p- S% n

- p9 Y  e. Y7 \, c
& y: u( M7 c! A& E# W/ F- ^; [1 k; q/ H$ U% O' a
咳咳,也没这么严重哈。
' L. }7 D  V  k* S/ b6 [  O那今天就给大家分享一个简单处理验证码的方法
( U  T2 ~4 r2 s: k* W( P- L" M5 x$ J8 @! e  e
!!文章结尾还有视频讲解哦 !!
* U( n) t- \; e; A/ W* k: U) ]% q/ L" `3 N# R
环境模块
9 v! K9 T: Q0 \& ?$ C. dPython和pycharm如果还有小伙伴没安装的话,可以直接评论区留言或者私信我 ~1 Q# ]) j& d' _1 b

+ \( B. ?' D0 B& e! B8 {  h8 E这里需要用到一个 ddddocr 模块 ,这是别人开源写好的一个东西,简单又好用,但是精确度差一点点,但是还是非常好用的。
7 t) K  \8 ]& |5 S1 u) Z5 q" Y* c9 N
如果你追求精确度的话,可以调用别人写好的一些API 。: S* Z* ?3 r9 t+ o  p4 ^  r8 i/ q2 J

8 g/ D( g! m% ]咱们直接 win+r 弹出搜索框后输入 cmd ,点击确定弹出命令提示符窗口, 输入pip install ddddocr 即可安装。
( k* e: M! y' v; X2 N! t
- h* G( {- u. u2 n+ J$ U* p# Z& x% M不会的话可以直接来这里 https://jq.qq.com/?_wv=1027&k=7Vp8wLlH 这里还有其他学习资料与免费课程
! `/ ]; e( U& @) @4 j& S7 m8 C  N. y
代码展示- |* `7 O9 x' @  U  S& N! E, }$ W
代码不多,非常简单。
4 ^7 n  p) j) `1 O& c. L1 k
7 ?# j8 F2 ^4 [1 w0 X模块安装好之后咱们先导入一下
1 y1 _: G3 k( X+ N6 T6 F; X. F( a9 `' C$ A. Z
import ddddocr
. |7 v1 P5 \, v" k+ r6 ]  \, A1
! p1 ?# x/ s6 {然后实例化一下,用一个 cor 接收一下这个数据。
6 b3 a$ Y" W* o0 V: F3 N; O2 }4 r' X! _5 |; @
ocr = ddddocr.DdddOcr()4 p& D0 C4 L4 H
1$ @1 @+ z! B1 ?8 F* }4 B& t
在这里准备了四个验证码/ O8 ^/ D8 m: v! U& t. f+ u7 r' r; g* i( B
: E5 v# S& n) @  {' Y! K) X* }# R
9 u, V& w: Q1 a3 r/ `' v

. r& Y1 z/ d$ ]. \$ m8 a* o; ]9 e5 T# n* `

" u% }2 B% E: X/ a( y- Q
+ g( @9 z6 Q( ?
4 w( ]. z. h5 O. G/ k8 ^& p7 p: ]8 v) ~  R8 v) G
分别实现一下验证码' R/ d& Y# M  s6 g- s1 |
首先我们用 with open 来读取一下这文件,读取方式使用 rb ,因为是图片的话就读取它的二进制数据
9 z% n9 a+ S& f# T+ J0 }/ i" a+ u1 N' d: M: ^0 q, x3 T
with open('img_3.png', 'rb') as f:
2 Z2 T. K$ d9 A, h: q. S2 d16 ^, l% p& F& r- D* M& o
使用 f.read() 将数据读取出来,再自定义一个变量接收一下。. S# {9 Z, P( j$ R0 G- P

6 [9 j7 o( K) J. r4 |2 ximg_bytes = f.read()+ }! O. K: D2 K. X0 o9 ~' c3 w
1
/ ~4 f1 o9 S: J然后我们通过 classification 将它传进去,把结果打印出来就可以了。
. z6 x4 X7 R" }- ^3 ^: V: A3 r8 H) y5 O! W3 ~. f, X
result = ocr.classification(img_bytes)
% V1 j' S9 j% b7 h. x2 H% iprint(result); D4 i" _. v& ?6 e1 }
1
/ i2 n9 h2 @6 \3 }' O8 Q3 t27 E5 b" G8 I$ D
实现效果7 }+ R( J% |. n+ b2 Q  }  ~7 I
纯数字的6 D* K# }! {8 ~0 b

3 _4 \7 {) p% n+ j0 U& ?" R
* ^5 l/ `% m/ B; q6 B6 C
& X) {2 w3 _' ?$ b字母+数字的- e$ ^8 c- v8 c  X3 x9 J$ Y7 i% o
0 Z6 C" U: J1 }

+ G+ {3 t2 ?  e
/ B9 ^" b- b7 n0 b: y# R) Q可以看到都完整的识别出来了,即使上面有一些花里胡哨的横线啥的。" M# P; H* h: ~9 e  ]: ]$ F
3 O. v6 V+ i- f- u
完整代码% ?/ F9 s( U0 D8 y
import ddddocr  V1 ~& p5 k2 K$ D0 O- `# R
5 Q% K* N) f; Z1 ?5 f% o/ B2 R2 p
ocr = ddddocr.DdddOcr()
5 p: A8 k* i, F3 q' t; H# ~4 w- J: V/ y/ t
with open('img_3.png', 'rb') as f:) G/ d  q+ a, R- k5 S: g3 y- v( j
    img_bytes = f.read(): a% X* M1 X( u$ C
9 U% x) B5 X) H; \
result = ocr.classification(img_bytes)
& a, {! l! d8 _print(result)( z4 \7 N1 h" B& _
1! M5 ?, X+ Q" G4 {4 I+ ?
2. @* K* n0 `8 I* @
39 O8 H$ o! U& A
4
/ X% ?2 \( `! A+ U5 U  t" n, J5; m" N+ |5 E1 j' W" A3 c% r" t
6, \' Y3 ]7 l2 O3 x. ^, [. }
7
, x( ], j4 \0 G8
/ Z- h' ?& O9 |9
* r) ?. n. A, ~, w$ E' Z视频教程. t2 B1 U$ U& T4 A

1 R- D2 |6 \5 l/ V! U【Python爬虫】实现验证码识别,教你两分钟搞定2 N( P; a8 I: g+ Z2 w

) d7 j0 v  B5 c大家可以自己去试试,也可以直接应用在采集数据实践当中~
. K" |* F- y; i5 s: H2 h( f6 O————————————————
# c8 y1 }2 F% {& _版权声明:本文为CSDN博主「小圆-」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
, F; z# v2 i$ V原文链接:https://blog.csdn.net/aliYz/article/details/126768038
7 z$ W; ]) E5 C) t' K
/ a8 t& M8 Y$ Y( {$ Q6 G( \& u* E1 x8 m





欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5