数学建模社区-数学中国
标题:
用Python实现简单的验证码处理
[打印本页]
作者:
杨利霞
时间:
2022-9-12 18:52
标题:
用Python实现简单的验证码处理
用Python实现简单的验证码处理
8 u+ n6 Q) S; }0 B7 a. ^
* y1 L* K# d0 E; r5 W) u) M/ S
文章目录
2 Z2 ^ ?4 ?( o/ c, d; G- F$ ]
前言
9 H9 `. w: ]) f2 i; [
环境模块
5 Y1 n. H/ K7 r! ?
代码展示
2 `4 B: i0 v9 A
分别实现一下验证码
) c/ E% r( R' `6 o( Y0 g4 B; O$ z9 @
实现效果
7 H2 n" f' s5 c1 R1 {
完整代码
/ O0 P0 T# j% m. u8 a5 Y! l+ ^" Z8 J
视频教程
+ n# t& m" ^# f6 J8 n
前言
$ i/ }% K, _) A+ J% `2 P( P4 N' B
嗨嗨,大家好 ~
, G _: {, ]9 K
% G" ` c$ r% C! b7 P9 B
不知道你们在采集数据的时候,有没有过因为过快或者访问频繁,一访问就弹出验证码,然后就蚌珠了~
- A2 n, W9 q$ a2 r
Z3 w* a+ ]& X( t. L k
( U8 a+ {& }; a5 K
' l" `- X- _6 T% O2 K( Z0 w8 o: ], ?
咳咳,也没这么严重哈。
! z$ D8 D* x4 C3 w( `* h7 j, [
那今天就给大家分享一个简单处理验证码的方法
; w% p) v* Q# e0 M6 R8 o* E
: Y! b; M$ j( i* F- y& ]
!!文章结尾还有视频讲解哦 !!
1 r: e# z% w- d
$ @. _' Z0 D& ]4 C$ U6 l1 {
环境模块
* Z$ u4 C. f) P
Python和pycharm如果还有小伙伴没安装的话,可以直接评论区留言或者私信我 ~
3 X4 u4 Y$ j! k$ ]
) z9 c P" R* s& |6 k
这里需要用到一个 ddddocr 模块 ,这是别人开源写好的一个东西,简单又好用,但是精确度差一点点,但是还是非常好用的。
# v, m" p! k! g
- y, }( r# v/ D8 J; K w+ |4 }
如果你追求精确度的话,可以调用别人写好的一些API 。
* ~3 v }7 N- g5 A6 Q) s
. N2 j" {- L$ R7 a* U
咱们直接 win+r 弹出搜索框后输入 cmd ,点击确定弹出命令提示符窗口, 输入pip install ddddocr 即可安装。
: c; S7 D. [* _; k3 t. t' x- \
! U% W0 }* f, J' L! H
不会的话可以直接来这里 https://jq.qq.com/?_wv=1027&k=7Vp8wLlH 这里还有其他学习资料与免费课程
$ w1 x- G3 R z7 A
2 g, y3 ?6 L. x4 U4 `
代码展示
6 M# e, Z8 t& U4 U$ N& U* |$ v% q
代码不多,非常简单。
6 l2 E9 w# Z* i3 H6 f! A7 I! Z
& ~4 S- x6 ^; W* h* Z6 N2 u
模块安装好之后咱们先导入一下
4 |/ s0 N' v) T# |
2 [7 L6 G$ f5 K0 {- G
import ddddocr
1 l! M# F$ }4 a2 m, v2 h6 D6 G# x
1
4 V5 R/ I# P6 r) u( W
然后实例化一下,用一个 cor 接收一下这个数据。
' a( m2 |1 {* ]% `+ J8 I
# P( e+ [( l5 T( V/ h# E
ocr = ddddocr.DdddOcr()
# n& o( e/ |; c/ S6 k3 ]! D
1
" v# r" O: k. o) ]& h( y) m
在这里准备了四个验证码
; e" k4 F$ P" ^* Z
! c+ ?7 j. E7 w1 y
4 T5 R" {5 h: s8 C! h2 W0 \) U
5 h0 s* ^7 r/ P ?% z4 }
( P- T) r6 ]" d% d9 p
/ [/ d6 |% s* `; N$ E( ~) V
9 c# g7 n9 v& H$ i7 z6 t3 D, C
+ H: K% I# Q; X# I
& L3 h7 Q5 f, B# G$ N$ r% t& U, v
分别实现一下验证码
- L5 l3 A- d2 t; |! |- s- X
首先我们用 with open 来读取一下这文件,读取方式使用 rb ,因为是图片的话就读取它的二进制数据
' ]6 N4 p7 A# y- b% v, z
4 k' }1 r& R/ n: ]& t+ ^
with open('img_3.png', 'rb') as f:
1 @+ T9 x; j1 P z1 S" Q) ?9 `2 i" {
1
" b# u- s: m" A1 ^, [/ i+ m
使用 f.read() 将数据读取出来,再自定义一个变量接收一下。
" {' G# B( E7 d4 a
1 `3 M- c2 T" A# b" }# c
img_bytes = f.read()
- n6 o5 N6 q7 I( Y: j {
1
4 N8 B. P) n; S) j ^ j1 ^) f5 ~
然后我们通过 classification 将它传进去,把结果打印出来就可以了。
$ W# F6 ]; K9 i7 n+ |7 o
" o( r+ V+ G5 T1 M _. N. [
result = ocr.classification(img_bytes)
7 q5 F4 x, S/ X3 D1 s3 W* v0 r
print(result)
, e# h+ x8 a k9 C& u
1
6 V# I5 l; @$ a. i
2
9 I! u+ |) g/ r
实现效果
7 `* Y- z" T# A+ z5 N
纯数字的
7 t( Z1 E+ T. A3 U+ J
8 }3 g0 b* }7 h( T
: h- Z: Q. G, o& d4 Z
! E. j5 v5 ]! D' D
字母+数字的
6 L5 _; l) ]% R8 {2 r
" z( f9 f) R3 E i1 \
8 V8 T( {6 ]1 ]$ `5 ]
! e1 z% Y4 `* E: d. n! ?
可以看到都完整的识别出来了,即使上面有一些花里胡哨的横线啥的。
' s# K8 w' M1 Z
8 l7 } h. E% E8 I- X4 F. f* U
完整代码
% S+ Z; M2 `$ d$ F/ F
import ddddocr
* E$ @7 J# K, X; c! h: g6 z' I: n
' N0 L6 E# Z, N6 @6 D5 _
ocr = ddddocr.DdddOcr()
$ ~9 t4 D# R5 _' B8 q
+ N# i' {: j9 e4 O7 g3 t
with open('img_3.png', 'rb') as f:
' \* F7 ~# J+ Z
img_bytes = f.read()
) v/ z% {' {1 p. Y t' z: [6 ^
1 `8 F: U- n6 U1 X
result = ocr.classification(img_bytes)
& P- O0 e6 f: B) \6 k
print(result)
4 t; \. x/ K9 x* ~3 {; U9 O- ]
1
* @" H. C2 ^( i6 ^! q3 b
2
6 l U) ?5 U$ _, t2 q0 P
3
( _- z2 R% h: T" c
4
& m( C# v' o+ Q' P
5
$ H1 I& m* \; ?9 `. ^& x% r2 E% N1 G" Q
6
4 \4 a$ E4 K5 [! g8 w+ y
7
6 @* |3 ^2 w. d5 E' u- `' r
8
: l6 b S1 }3 Y' R U* Z3 S8 k; ?
9
+ L- V/ i1 L B+ V2 P0 @' _
视频教程
% G5 G; y) z) H5 _* |
& a1 |) |, R9 N( l9 s8 m
【Python爬虫】实现验证码识别,教你两分钟搞定
( @1 P. l" c8 m
9 M. T! ^( b, u% L/ {
大家可以自己去试试,也可以直接应用在采集数据实践当中~
& G" X/ y2 A7 T- p% R/ S! H$ b
————————————————
( Q# x6 g; X# f* t
版权声明:本文为CSDN博主「小圆-」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
' C0 }( s7 G* n- J# {- w
原文链接:https://blog.csdn.net/aliYz/article/details/126768038
* @' I' [+ n$ n& C, P3 ?( D# m
6 |6 D4 c( }! w- `
1 c4 k% N3 d+ { m2 V& \
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5