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 相关文章推荐
django使用图片延时加载引起后台404错误
Apr 18 Python
python利用标准库如何获取本地IP示例详解
Nov 01 Python
python中利用h5py模块读取h5文件中的主键方法
Jun 05 Python
对python过滤器和lambda函数的用法详解
Jan 21 Python
解决python文件双击运行秒退的问题
Jun 24 Python
python画图——实现在图上标注上具体数值的方法
Jul 08 Python
对django中foreignkey的简单使用详解
Jul 28 Python
python多继承(钻石继承)问题和解决方法简单示例
Oct 21 Python
python爬虫实现POST request payload形式的请求
Apr 30 Python
用python实现前向分词最大匹配算法的示例代码
Aug 06 Python
详解如何修改python中字典的键和值
Sep 29 Python
python小程序之飘落的银杏
Apr 17 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
PHP中输出转义JavaScript代码的实现代码
2011/04/22 PHP
php绘图中显示不出图片的原因及解决
2014/03/05 PHP
php身份证号码检查类实例
2015/06/18 PHP
[原创]PHP实现字节数Byte转换为KB、MB、GB、TB的方法
2017/08/31 PHP
jquery 学习之二 属性相关
2010/11/23 Javascript
基于jquery的15款幻灯片插件
2011/04/10 Javascript
onbeforeunload与onunload事件异同点总结
2013/06/24 Javascript
JavaScript版TAB选项卡效果实例
2013/08/16 Javascript
javascript中call和apply方法浅谈
2013/09/27 Javascript
举例说明JavaScript中的实例对象与原型对象
2016/03/11 Javascript
JavaScript性能优化之函数节流(throttle)与函数去抖(debounce)
2016/08/11 Javascript
轻松理解Javascript变量的相关问题
2017/01/20 Javascript
微信小程序实现滴滴导航tab切换效果
2018/07/24 Javascript
使用ng-packagr打包Angular的方法示例
2018/09/21 Javascript
Vue表单输入绑定的示例代码
2018/11/01 Javascript
微信小程序实现类似微信点击语音播放效果
2020/03/30 Javascript
js+HTML5 canvas 实现简单的加载条(进度条)功能示例
2019/07/16 Javascript
Quasar Input:type=&quot;number&quot; 去掉上下小箭头 实现加减按钮样式功能
2020/04/09 Javascript
js实现文章目录索引导航(table of content)
2020/05/10 Javascript
[01:03:59]2018DOTA2亚洲邀请赛3月30日 小组赛B组VGJ.T VS Secret
2018/03/31 DOTA
python 正则表达式 概述及常用字符
2009/05/04 Python
python基础教程之简单入门说明(变量和控制语言使用方法)
2014/03/25 Python
Python多线程编程(四):使用Lock互斥锁
2015/04/05 Python
Python列表推导式、字典推导式与集合推导式用法实例分析
2018/02/07 Python
解决Tensorflow使用pip安装后没有model目录的问题
2018/06/13 Python
在Pycharm中调试Django项目程序的操作方法
2019/07/17 Python
Python Pandas list列表数据列拆分成多行的方法实现
2020/12/14 Python
全网最详细的PyCharm+Anaconda的安装过程图解
2021/01/25 Python
CSS3轻松实现圆角效果
2017/11/09 HTML / CSS
复古风格的女装和装饰品:ModCloth
2017/12/29 全球购物
任意存:BOXFUL
2018/05/21 全球购物
Hotels.com越南:酒店预订
2019/10/29 全球购物
环境日宣传活动总结
2014/07/09 职场文书
考试作弊检讨书
2014/10/21 职场文书
2014年企业党建工作总结
2014/12/18 职场文书
小学生安全保证书
2015/05/09 职场文书