web自动化之tesseract验证码识别,识别成功

OCR识别技术
OCR中文名称光学识别, tesseract是一个有名的开源OCR识别框架,它与Leptonica图片处理库结合,可以读取各种格式的图像并将它们转化成超过60种语言的文本,可以不断训练自己的识别库,使图像转换文本的能力不断增强。如果团队深度需要,还可以以它为模板,开发出符合自身需求的OCR引擎。那么接下来给大家介绍一下如何使用tessract来识别我们的验证码。
一、安装tesseract,并配置环境变量:
1 ,安装tesseract
Windows安装程序下载:https://digi.bib.uni-mannheim.de/tesseract/tesseract-ocr-setup-3.05.02-20180621.exe
2 , 下载并加入中文简体
在这里插入图片描述
安装包下载地址:https://tesseract-ocr.github.io/tessdoc/Data-Files
下载完成后,将安装包放置“tessdata”目录中。C:\OCR\Tesseract-OCR\tessdata
注:tesseract 默认只能识别英文,如果想要识别其他语言,可下载其他安装包
3 , 配置环境变量
要从任何位置访问tesseract-OCR,您可能必须将tesseract-OCR二进制文件所在的目录添加到Path变量中
C:\OCR\Tesseract-OCR
二、python中识别验证码图片内容(登录案例)
1、安装需要使用到的模块:selenium、pillow、time等
2、chromedriver安装
下载地址:http://chromedriver.storage.googleapis.com/index.html
注:下载和自己电脑浏览器对应的版本
配置环境变量
3、实现步骤

import time
import pytesseract
import PIL.Image
from selenium.webdriver.common.by import By
from selenium import webdriver
from PIL import Image

# 创建一个浏览器
browser = webdriver.Chrome()
# 访问登录页面
url = '访问地址'
browser.get(url)
browser.maximize_window()
time.sleep(2)  # 暂停两秒

# 选择账号、密码输入栏,输入对应的账号密码
input_user = browser.find_element(By.XPATH, '账号输入框的Xpath地址').send_keys("账号")
input_pwd = browser.find_element(By.XPATH, '密码输入框的Xpath地址').send_keys("账号对应的密码")

# 对当前页面进行截图
browser.save_screenshot("login.png")
yzm_btn = browser.find_element(By.XPATH, '验证码图片的Xpath地址')
# 获取图片元素的位置
loc = yzm_btn.location
# 获取图片的宽高
size = yzm_btn.size
# 1.5为显示器的缩放和布局
left = loc['x']*1.50  # 计算左边界
top = loc['y']*1.50   # 计算上边界
right = (loc['x']+size['width'])*1.50   # 计算右边界
botom = (loc['y']+size['height'])*1.50   # 计算下边界
# 将上下左右边界值放到元组中(顺序必须是:左、上、右、下)
val = (left,top,right,botom) 

# 使用PIL模块对页面图片进行裁剪,将验证码图片保存
login_pic = PIL.Image.open('login.png')
yzm_pic = login_pic.crop(val)
yzm_pic.save('yzm.png')
# 识别验证码,lang为识别的语言
data = pytesseract.image_to_string(yzm_pic,lang="chi_sim")

# 在输入框内输入验证码
yzm_input = browser.find_element(By.XPATH,'验证码输入框的Xpath地址').send_keys(data)

# 点击登录
submit = browser.find_element(By.XPATH,'登录按钮的Xpath地址').send_keys()

time.sleep(10)
  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值