第8章 验证码的识别---1、图形验证码的识别+2、极验验证码的识别

本文介绍了如何使用OCR技术识别图形验证码,包括安装tesserocr库和处理图片干扰。接着详细阐述了利用Selenium模拟用户行为来识别和解决极验滑动验证码,涉及点击、识别缺口、模拟拖动等步骤,最后提供了源码地址。
摘要由CSDN通过智能技术生成

图形验证码一般是4位字母或者数字。这类验证码利用OCR识别技术识别。需要python库为tesserocr,其需要tesseract的支持,后者下载链接:https://github.com/tesseract-ocr/tesseract

下载完成后,安装过程中,需要注意,要勾选:Additional language data download 选项来安装 OCR 识别支持的语言包。

接下来,可以使用pip安装tesserocr:pip install tesserocr pillow

 

检验安装:

import tesserocr 
from PIL import Image 
image = Image.open('test.png') 
print(tesserocr.image_to_text(image))

识别测试:

import tesserocr 
from PIL import Image 
image = Image.open('code.jpg')  #建立Image对象
result=tesserocr.image_to_text(image)  #调用image_to_text方法,传入image对象
print(result)

# 简便方法如下,但效果不如上面的
import tesserocr
print(tesserocr.file_to_text('code.jpg'))

遇到验证码图片中存在多余的线条,会对识别结果产生干扰,所以要对图片进行转灰度、二值化等操作。

就如上面这个验证码:

import tesserocr
from PIL import Image

image=image.convert('L') # 传参L,图像转化为灰度图像
threshold = 80 # 设置二值化阈值为80;如若不设置,默认为127,
table=[]
for i in range(256):
    if i<threshold:
        table.append(0)
    else:
        table.append(1)
# 类似于数组,大于阈值者,标为1;否则标为0
image=image.point(table,'1')
ima
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值