数学建模社区-数学中国
标题:
用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. d
Python和pycharm如果还有小伙伴没安装的话,可以直接评论区留言或者私信我 ~
1 Q# ]) j& d' _1 b
+ \( B. ?' D0 B& e! B8 { h8 E
这里需要用到一个 ddddocr 模块 ,这是别人开源写好的一个东西,简单又好用,但是精确度差一点点,但是还是非常好用的。
7 t) K \8 ]& |5 S
1 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 T
6 F; X. F( a9 `' C$ A. Z
import ddddocr
. |7 v1 P5 \, v" k+ r6 ] \, A
1
! 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 d
1
6 ^, 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 x
img_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% i
print(result)
; D4 i" _. v& ?6 e1 }
1
/ i2 n9 h2 @6 \3 }' O8 Q3 t
2
7 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* @
3
9 O8 H$ o! U& A
4
/ X% ?2 \( `! A+ U5 U t" n, J
5
; m" N+ |5 E1 j' W" A3 c% r" t
6
, \' Y3 ]7 l2 O3 x. ^, [. }
7
, x( ], j4 \0 G
8
/ 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