数学建模社区-数学中国
标题:
用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- n
9 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# v
9 A2 M- {; | W" k; ]2 u# b
环境模块
, F' J K+ h% D' P. o; z' k+ B
Python和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 ddddocr
2 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$ H
1
/ I4 U2 Y- N) J* A
在这里准备了四个验证码
2 ?1 W3 u9 F: b! ^5 `* p3 D
( k( V N' r1 _' C# G1 u
7 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- l
8 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 A
1
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 l
img_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! u
2
! 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 ddddocr
1 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- w
result = 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' h
2
) e; W2 D' y2 t( ~" U- V
3
5 w# y3 L$ E# h- e+ v( ]
4
$ C' A% `0 a8 m/ _8 m; k
5
2 H, P8 K# V6 [; _* m
6
7 B: T+ [5 T4 [. i6 T
7
Y7 O, |( H/ c$ E
8
. ]7 X {6 |* N
9
6 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