python3定位并识别图片验证码实现自动登录功能


Posted in Python onJanuary 29, 2021

会用到的库的

1、selenium的webdriver
2、tesserocr或者pytesseract进行图像识别
3、pillow的Image进行图片处理

from selenium import webdriver
import tesserocr
from PIL import Image

tesserocr的安装.

获取验证码图片方法1:

def get_code_image(file_name):
 driver.save_screenshot(file_name) # 截取整个屏幕并保存
 code_element = driver.find_element_by_class_name("verify_code_img___1Mei_") # 定位到验证码元素
 left = code_element.location['x'] # 定位到截图位置
 top = code_element.location['y']
 right = code_element.size['width'] + left
 bottom = code_element.size['height'] + top
 im = Image.open(file_name) # 从文件读取截图,截取验证码位置再次保存
 img = im.crop((left, top, right, bottom))
 img.save(file_name)
 return file_name

获取验证码图片方法2:

def get_code_image(file_name):
 code_element = driver.find_element_by_class_name("verify_code_img___1Mei_") # 定位到验证码元素 
 code_element.screenshot(file_name)

注:此方法截图时屏幕会闪动,可能引发bug,如下图,目前没有解决

python3定位并识别图片验证码实现自动登录功能

处理验证码图片

def deal_code_image(file_name):
 image = Image.open(file_name)
 # image.show() #查看处理前的图片
	# 处理图片去除干扰
 # 将图片转化为灰度图像
 image = image.convert('L')
 
 threshold = 90 # 设置临界值,临界值可调试
 table = []
 for i in range(256):
  if i < threshold:
   table.append(0)
  else:
   table.append(1)

 image = image.point(table, '1')
 # image.show() #查看处理后的图片
 # 1:使用tesseract库识别图片中的验证码
 # res = tesserocr.image_to_text(image)
 # 2:使用pytesseract库识别图片中的验证码
 res = pytesseract.image_to_string(image)

 # print(res) #查看识别出来的文案
 res = res.replace(" ", "") #去除结果中的空格
 return res

处理前的图片,有干扰,无法识别

python3定位并识别图片验证码实现自动登录功能

处理后的图片,基本可以识别

python3定位并识别图片验证码实现自动登录功能

识别结果不一定准确,如果验证码输入错误,可以点击换一张图片再次识别,多次尝试,本次不做说明

到此这篇关于python3定位并识别图片验证码实现自动登录的文章就介绍到这了,更多相关python识别图片验证码实现自动登录内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python MySQLdb Windows下安装教程及问题解决方法
May 09 Python
Python实现简单的文本相似度分析操作详解
Jun 16 Python
python中int与str互转方法
Jul 02 Python
Python线程下使用锁的技巧分享
Sep 13 Python
Django之模型层多表操作的实现
Jan 08 Python
VSCode Python开发环境配置的详细步骤
Feb 22 Python
PyQt5使用QTimer实现电子时钟
Jul 29 Python
python 多进程并行编程 ProcessPoolExecutor的实现
Oct 11 Python
基于python plotly交互式图表大全
Dec 07 Python
pycharm专业版远程登录服务器的详细教程
Sep 15 Python
Python爬虫实例之2021猫眼票房字体加密反爬策略(粗略版)
Feb 22 Python
新手必备Python开发环境搭建教程
May 28 Python
python中numpy数组与list相互转换实例方法
Jan 29 #Python
详解Python中的GIL(全局解释器锁)详解及解决GIL的几种方案
Jan 29 #Python
Python爬虫获取op.gg英雄联盟英雄对位胜率的源码
Jan 29 #Python
python中spy++的使用超详细教程
Jan 29 #Python
Python Selenium破解滑块验证码最新版(GEETEST95%以上通过率)
Jan 29 #Python
详解pycharm的python包opencv(cv2)无代码提示问题的解决
Jan 29 #Python
如何用python开发Zeroc Ice应用
Jan 29 #Python
You might like
香妃
2021/03/03 冲泡冲煮
某大型网络公司应聘时的笔试题目附答案
2008/03/27 PHP
php运行出现Call to undefined function curl_init()的解决方法
2010/11/02 PHP
php文件缓存类汇总
2014/11/21 PHP
javascript一个无懈可击的实例化XMLHttpRequest的方法
2010/10/13 Javascript
jQuery弹出层插件Lightbox_me使用指南
2015/04/21 Javascript
js实现为a标签添加事件的方法(使用闭包循环)
2016/08/02 Javascript
JavaScript页面实时显示当前时间实例代码
2016/10/23 Javascript
基于jQuery实现照片墙自动播放特效
2017/01/12 Javascript
javascript设计模式之单体模式学习笔记
2017/02/15 Javascript
babel基本使用详解
2017/02/17 Javascript
jQuery插件FusionCharts绘制2D双折线图效果示例【附demo源码】
2017/04/14 jQuery
Vue中保存用户登录状态实例代码
2017/06/07 Javascript
JS作用域链详解
2017/06/26 Javascript
基于JQuery的Ajax方法使用详解
2017/08/16 jQuery
小程序实现发表评论功能
2018/07/06 Javascript
JavaScript字符串转数字的5种方法及遇到的坑
2018/07/16 Javascript
JavaScript时间日期操作实例小结【5个示例】
2018/12/22 Javascript
JavaScript使用闭包模仿块级作用域操作示例
2019/01/21 Javascript
深入理解Antd-Select组件的用法
2020/02/25 Javascript
jQuery事件模型默认行为执行顺序及trigger()与 triggerHandler()比较实例分析
2020/04/30 jQuery
jQuery实现评论模块
2020/08/19 jQuery
一篇超完整的Vue新手入门指导教程
2020/11/18 Vue.js
使用python编写脚本获取手机当前应用apk的信息
2014/07/21 Python
Python下的常用下载安装工具pip的安装方法
2015/11/13 Python
python spyder中读取txt为图片的方法
2018/04/27 Python
Python Pexpect库的简单使用方法
2019/01/29 Python
python3使用腾讯企业邮箱发送邮件的实例
2019/06/28 Python
python3读取csv文件任意行列代码实例
2020/01/13 Python
django 数据库返回queryset实现封装为字典
2020/05/19 Python
基于django和dropzone.js实现上传文件
2020/11/24 Python
美国嘻哈文化生活方式品牌:GLD
2018/04/15 全球购物
资料员的岗位职责
2013/11/20 职场文书
应届毕业生求职自荐书
2014/01/03 职场文书
大二学期个人自我评价
2014/01/13 职场文书
海弦WR-800F
2022/04/05 无线电