数学建模社区-数学中国

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

作者: 杨利霞    时间: 2022-9-12 18:52
标题: 用Python实现简单的验证码处理
用Python实现简单的验证码处理
1 T3 Z3 z/ w0 l+ O' e
4 K7 F* F* K  {0 F3 c8 M6 f文章目录
; x# [3 @: e  L$ F前言5 X1 D& O# Z* [
环境模块
( i4 z2 F, l# ]# \* I5 Q代码展示
* h  B. T- r- v分别实现一下验证码
9 Z' g' A% s, e, L. L6 u实现效果
0 Q" |  J2 r/ Q7 W3 m' u完整代码
/ v1 G  b2 i7 y) |! j* X# Y! f  w9 v; f视频教程* H2 o: p$ Q6 @
前言2 l' n  W. `* ~5 M7 m( q0 [
嗨嗨,大家好 ~& ]2 h" O9 {1 }9 P  G/ l

* n# A+ ]# U, d% {- P不知道你们在采集数据的时候,有没有过因为过快或者访问频繁,一访问就弹出验证码,然后就蚌珠了~
. D0 U  L& k9 e" N( }
$ k: o4 D$ P- S  ~/ v4 a
! M* d. M& ^% Z0 e5 [1 b
: F2 f" |5 V) b& |+ e, O6 H/ D咳咳,也没这么严重哈。2 Q% j2 \! x: z: h( p, ^5 z3 ~
那今天就给大家分享一个简单处理验证码的方法
. `  A0 d5 A2 V) z$ L' ?' C1 {$ A, M/ j# I
!!文章结尾还有视频讲解哦 !!
) B& H! r: h* O+ z! M' H- P
8 t' F3 @, t8 Z1 e环境模块
0 Q0 l; V" C% d1 T2 T4 t/ JPython和pycharm如果还有小伙伴没安装的话,可以直接评论区留言或者私信我 ~$ [  W: ^. u* Z4 H8 s
. G6 _0 y7 h; ~0 Z+ B6 j
这里需要用到一个 ddddocr 模块 ,这是别人开源写好的一个东西,简单又好用,但是精确度差一点点,但是还是非常好用的。8 O1 h4 A) `7 N- J( w

4 R  V( F9 Z, l- ~7 f4 ^6 n/ c如果你追求精确度的话,可以调用别人写好的一些API 。' W/ ~9 g: S( ?3 L! e

' c, w3 b4 {8 X/ x' f咱们直接 win+r 弹出搜索框后输入 cmd ,点击确定弹出命令提示符窗口, 输入pip install ddddocr 即可安装。
8 h* S+ B; e/ s6 N0 G5 L
$ F3 H. M1 |2 d3 s不会的话可以直接来这里 https://jq.qq.com/?_wv=1027&k=7Vp8wLlH 这里还有其他学习资料与免费课程4 ?& J& x! H* A
' t4 a& V5 A2 {/ `5 t1 ~7 ?! I2 ^& f
代码展示3 K* u& }, S. X8 d
代码不多,非常简单。9 j0 _" R+ G& R% ^6 V* N( K( ?

! ^6 O# G" ]9 |# n- S7 Z模块安装好之后咱们先导入一下8 I9 C' L. |' \3 _1 E+ }8 L

$ d7 n+ E, @* h  S3 |' nimport ddddocr6 ^, C; Z5 b+ D* n3 D
1
' D& O, }2 q: @6 I2 P; a1 F. v% q然后实例化一下,用一个 cor 接收一下这个数据。
& q; _0 R9 c9 W) \' i! g
+ G2 c0 j' x8 b( n1 U7 Q/ v* tocr = ddddocr.DdddOcr()
8 g7 N* s$ [8 Z9 z3 s; I1
) G' n! ?6 Y! C1 N& n( ~在这里准备了四个验证码9 |$ w( T  R/ a( q
. W: Z1 z* x% ^* n7 ~( a
; U2 B9 {; }/ {
; }1 s& R. Z2 c3 Y( t
6 F/ k; B3 `6 j  y
$ d5 q; @/ W6 y; t' U# y
, x. O& N& `: S% B0 l3 p

! P& `$ b& `7 y( v- D5 f% S! C. D2 {
分别实现一下验证码
7 f# L( O  ?7 {; o2 l首先我们用 with open 来读取一下这文件,读取方式使用 rb ,因为是图片的话就读取它的二进制数据4 S/ C+ z  v+ b* o

6 S2 S# O  M5 t; g& V2 awith open('img_3.png', 'rb') as f:
: P! S+ f* l2 |6 T  p' ]4 n; Q( Y1; U, G& G8 [; |$ d
使用 f.read() 将数据读取出来,再自定义一个变量接收一下。
5 H; a7 ?! f' t. x7 ?& u, G3 m! j4 ?+ q% v" G; ?; u
img_bytes = f.read()! u( T* L" L+ [# [
1% B4 \3 |+ H# v& F! G7 Y: l5 F0 ~
然后我们通过 classification 将它传进去,把结果打印出来就可以了。% }, J" f9 N. J& p) D" U1 q

3 l( [4 ^% ~) b4 G. D0 C8 }+ Xresult = ocr.classification(img_bytes)
9 `2 P4 D, S' s7 Q$ O' W, C9 |  Bprint(result)
# w! \+ J- K$ |1
1 O7 J6 ~$ q* j- k- Y/ _( w2
6 m1 a& d# @/ F: M实现效果
# k8 t9 F, {& S/ B" I纯数字的( i3 A  Z5 p8 X! S! g
+ M+ `$ Q2 W9 r3 }

  {' I1 s! A" x! J/ p& w0 ^
# a6 t1 U+ |6 Q; a9 G字母+数字的
9 J2 m5 o8 \- f' F5 k0 v1 ], A! x
+ [1 O* i, x! m0 p% c

5 n; s* [" U0 _( g. g可以看到都完整的识别出来了,即使上面有一些花里胡哨的横线啥的。/ ]* {+ g; `( A  l4 Z" q; ~

& h) h% G) m  j* }! y5 V; D6 f完整代码
3 d6 Y' ?- g$ }( L: g& u4 wimport ddddocr" Y! w, R( b' s1 A! D' Y

; W7 S/ V5 G6 \/ H; f6 g$ S/ C+ U$ D! Zocr = ddddocr.DdddOcr()
' x& u! p9 ^# J" t4 t0 X' `" N) T
) H: v1 g9 A7 ?2 @9 b$ \, }# ywith open('img_3.png', 'rb') as f:- B3 w+ W! d3 ^, k
    img_bytes = f.read()( h+ D$ M, Z8 q# }: J
- H) c! F5 T) z2 j" R' H/ m$ E" @
result = ocr.classification(img_bytes)) f% O" c2 C  c1 Y- D* Z
print(result)
+ P6 w$ X6 z1 o3 ^1
8 V! ]. k+ V$ N: ~% _' z2 B  N20 J$ l; o: Y& w
3
. H3 y* X' u: }9 Y$ _% @& y8 }% ?4
/ N( ^+ b. g5 t6 v8 d5- k* N1 b5 L$ o4 c" R' Q
6
+ e4 ]* Y7 ^7 d, x: ~+ W76 \* b2 W* X) ]- R* J4 a6 |( P
80 e1 G5 O0 ?3 U' e  n& ?5 j
9
/ @# V6 I- [+ \3 J; V; `! T视频教程; W# g& W& D$ Z3 O
- c( Y2 g; w, I% j* _
【Python爬虫】实现验证码识别,教你两分钟搞定4 U% S( w' Y5 [2 F, q8 s$ T
) G7 D9 H; Y) @% `8 [. Y; d
大家可以自己去试试,也可以直接应用在采集数据实践当中~- _7 e. T* {  q* z( s* ?+ g* h
————————————————% m  i+ v+ ~" d; a  U
版权声明:本文为CSDN博主「小圆-」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
5 `8 h9 M7 N1 L$ R原文链接:https://blog.csdn.net/aliYz/article/details/126768038$ a# b' r# b* G) O

; V2 i/ e" S: f$ _, u7 @0 c" K3 B  a, I, P





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