数学建模社区-数学中国

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

作者: 杨利霞    时间: 2022-9-12 18:52
标题: 用Python实现简单的验证码处理
用Python实现简单的验证码处理
# }6 D, t5 p) v) O% o5 G6 [: B
# c2 D. x, W3 {文章目录% v1 ?: E* \. B* `
前言) C2 D, w! @* |  W( w
环境模块
6 t" @: P. f9 S. B9 L2 Z- }代码展示' O- u: ^  W; I7 V8 `/ V5 J
分别实现一下验证码
. H$ r0 ^: x5 n. G2 j( o实现效果2 t' W8 N. P9 |1 e/ b  v# _" v9 S
完整代码
4 ]! a8 L* b/ `, E3 x视频教程1 e1 Q" i' f4 J6 p- O
前言; L# Q- ~+ n/ w: t+ K3 H
嗨嗨,大家好 ~
2 k) S  `1 ^% y& a% @" \6 {( l2 E# b9 F5 a0 B
不知道你们在采集数据的时候,有没有过因为过快或者访问频繁,一访问就弹出验证码,然后就蚌珠了~/ g! e! Y% n' F' V; y0 ?" l4 i
' T7 \1 N. z! y! A* x; ?2 k( G

3 i! [) N3 @  g! Q- n9 g: m- w& L  l- y
咳咳,也没这么严重哈。
% }6 \- p- p3 ~! g; o那今天就给大家分享一个简单处理验证码的方法  B: s5 y. _8 x2 A0 a* q$ R9 s

+ ?9 j4 \+ U. @! `* r! w8 T, Q!!文章结尾还有视频讲解哦 !!
) L6 x: h! \) y" j; R# v9 A2 M- {; |  W" k; ]2 u# b
环境模块
, F' J  K+ h% D' P. o; z' k+ BPython和pycharm如果还有小伙伴没安装的话,可以直接评论区留言或者私信我 ~, T& U9 z6 D5 s% z6 ]
) e& @) m$ f8 g2 k
这里需要用到一个 ddddocr 模块 ,这是别人开源写好的一个东西,简单又好用,但是精确度差一点点,但是还是非常好用的。  ?+ B# p, ~3 |

# W3 G( t% G! q( T5 i+ {) [3 J4 q/ ^如果你追求精确度的话,可以调用别人写好的一些API 。
$ S0 Z# h: m! t) L$ F; G6 ~  |7 Q* d/ n) s( `; Z
咱们直接 win+r 弹出搜索框后输入 cmd ,点击确定弹出命令提示符窗口, 输入pip install ddddocr 即可安装。
- z- i" g# F  m' E& W6 z1 X1 A2 a
! [: f! R+ N  K7 q6 ?% S0 e不会的话可以直接来这里 https://jq.qq.com/?_wv=1027&k=7Vp8wLlH 这里还有其他学习资料与免费课程; O0 B! K# ?9 ]4 D
) ^; C2 ?! @% G2 O1 l7 c
代码展示$ c# \/ a( o6 l* _9 Z8 q
代码不多,非常简单。
! f% Z2 A  r' S: _! F; _
  V% {+ l- m' T. m7 j8 k8 k3 R7 a* b模块安装好之后咱们先导入一下: y7 O/ I* N! W8 S: ], l
9 I- _& \2 O0 U# b6 t: V
import ddddocr2 T$ @& x: k) Z, n; Q+ E
1' S  U# n8 \: L8 U* \0 n7 U; b
然后实例化一下,用一个 cor 接收一下这个数据。6 W2 b, |0 q* y6 f  K* [" L
1 t: i3 R! _" V$ ~
ocr = ddddocr.DdddOcr()
% o% q! j7 i. e) k% Y$ H1
/ I4 U2 Y- N) J* A在这里准备了四个验证码
2 ?1 W3 u9 F: b! ^5 `* p3 D
( k( V  N' r1 _' C# G1 u7 T, g. `4 r7 z( ~

4 X: S0 D7 w7 d
9 {' ^' r% Z$ {2 q( L! C$ o) e- C4 Q/ s- i. ~$ a

# x, k8 \& G: i" _) H) [
& B0 d6 p: A9 R9 L- l8 f$ j1 V3 m. i! c
分别实现一下验证码
1 l5 }# ]" u0 z4 V' _& j0 c首先我们用 with open 来读取一下这文件,读取方式使用 rb ,因为是图片的话就读取它的二进制数据& P- l$ \4 n' S' O* t* H4 M$ e) @
6 U( K1 k+ b% j1 i$ [7 `& c
with open('img_3.png', 'rb') as f:
! @# s( V5 g7 _2 A1
4 N: c, ?( F$ O7 K/ f' u% k使用 f.read() 将数据读取出来,再自定义一个变量接收一下。6 V( z: [0 h# w9 @% K

1 S5 f2 h; ?( A4 @8 E1 w1 x- S$ v1 limg_bytes = f.read()  e! f* e1 g; U8 C
1, B; x2 G+ Q! ^# c: S
然后我们通过 classification 将它传进去,把结果打印出来就可以了。( ~; E0 `; Z4 Q0 Z
) q  D  Q1 h7 a& f2 W/ x) t
result = ocr.classification(img_bytes)% u- M" D' i/ L! w
print(result); J' Y  B- r; L  K6 D  I
1
4 R) n0 p: u$ n$ G5 t  m( Y! u2
! r8 O1 k6 h2 ~) _8 E/ F# \; r实现效果
1 B6 C% B- k; X3 n6 \- \纯数字的) d. X3 P, U/ h8 L4 o7 h; b

9 a. C- t/ k* R" I" v, p) o% W' K8 @9 @1 S) s  p. O
. k  S* Q( W3 f( y- p
字母+数字的5 ?0 o( F: b9 r% h  R5 t/ Z

5 {/ t: F- i; j! w1 \/ y& V. G% t9 K  X) u
6 G9 y& U" I! o4 k9 u& ?) x. ]
可以看到都完整的识别出来了,即使上面有一些花里胡哨的横线啥的。  N* e7 i- `" d2 r, U3 D

- m2 C7 X& ~8 e& _. w3 O6 p完整代码" b* I5 J, S5 A0 S" p( {" I5 g
import ddddocr1 g2 `2 P: F( ^2 A. c: m, w
7 I) q( R1 v. E% ]2 d% Y# w
ocr = ddddocr.DdddOcr()
* |+ b6 Y" ^, K" X- R% j  M4 H5 \% P# m: X/ c
with open('img_3.png', 'rb') as f:
: v5 |8 ~3 Y! _# O2 e    img_bytes = f.read()
* r! C( \% N' N% A% ?) E8 y
/ X% e- P2 G0 L: H' z/ m- wresult = ocr.classification(img_bytes)6 h$ a+ ?$ p* Y$ c: m
print(result)6 x$ a7 h( O1 x% i
1
% {0 T5 X% o  P* M7 q' h2
) e; W2 D' y2 t( ~" U- V3
5 w# y3 L$ E# h- e+ v( ]4$ C' A% `0 a8 m/ _8 m; k
5
2 H, P8 K# V6 [; _* m6
7 B: T+ [5 T4 [. i6 T7  Y7 O, |( H/ c$ E
8. ]7 X  {6 |* N
96 i! A+ Z# S# _8 Q$ W0 Q
视频教程) l0 t& E( [! L$ O1 M5 b' e

7 W6 m. q. g1 ^$ u3 [/ \【Python爬虫】实现验证码识别,教你两分钟搞定. c6 c' T; h8 d' ], \4 j

! o2 x0 s% }9 ?, x# P大家可以自己去试试,也可以直接应用在采集数据实践当中~
" Q& h5 v1 h, \7 c————————————————1 @& n( r5 X5 N4 V
版权声明:本文为CSDN博主「小圆-」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
8 u) ^5 i- N4 ]原文链接:https://blog.csdn.net/aliYz/article/details/126768038
$ f  B$ d: @+ u
% m8 o* x% z& n
( a. e" f" s3 i5 |, _! S9 d/ m, ?




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