数学建模社区-数学中国
标题:
用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' ?' C
1 {$ 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/ J
Python和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 |' n
import ddddocr
6 ^, 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* t
ocr = ddddocr.DdddOcr()
8 g7 N* s$ [8 Z9 z3 s; I
1
) 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 a
with open('img_3.png', 'rb') as f:
: P! S+ f* l2 |6 T p' ]4 n; Q( Y
1
; 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 }+ X
result = ocr.classification(img_bytes)
9 `2 P4 D, S' s7 Q$ O' W, C9 | B
print(result)
# w! \+ J- K$ |
1
1 O7 J6 ~$ q* j- k- Y/ _( w
2
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' F
5 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 w
import ddddocr
" Y! w, R( b' s1 A! D' Y
; W7 S/ V5 G6 \/ H; f6 g$ S/ C+ U$ D! Z
ocr = ddddocr.DdddOcr()
' x& u! p9 ^# J" t4 t0 X' `" N) T
) H: v1 g9 A7 ?2 @9 b$ \, }# y
with 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 N
2
0 J$ l; o: Y& w
3
. H3 y* X' u: }9 Y$ _% @& y8 }% ?
4
/ N( ^+ b. g5 t6 v8 d
5
- k* N1 b5 L$ o4 c" R' Q
6
+ e4 ]* Y7 ^7 d, x: ~+ W
7
6 \* b2 W* X) ]- R* J4 a6 |( P
8
0 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$ _, u
7 @0 c" K3 B a, I, P
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5