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中模拟enum枚举类型的5种方法分享
Nov 22 Python
python使用Tkinter显示网络图片的方法
Apr 24 Python
在Python的Tornado框架中实现简单的在线代理的教程
May 02 Python
Python简单调用MySQL存储过程并获得返回值的方法
Jul 20 Python
代码讲解Python对Windows服务进行监控
Feb 11 Python
Python3用tkinter和PIL实现看图工具
Jun 21 Python
Python玩转PDF的各种骚操作
May 06 Python
Python之NumPy(axis=0 与axis=1)区分详解
May 27 Python
Pandas库之DataFrame使用的学习笔记
Jun 21 Python
解决pyPdf和pyPdf2在合并pdf时出现异常的问题
Apr 03 Python
Python Scrapy框架:通用爬虫之CrawlSpider用法简单示例
Apr 11 Python
Python字符串查找基本操作代码案例
Oct 27 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怎样调用MSSQL的存储过程
2006/10/09 PHP
PHP新手上路(六)
2006/10/09 PHP
php视频拍照上传头像功能实现代码分享
2015/10/08 PHP
php字符串比较函数用法小结(strcmp,strcasecmp,strnatcmp及strnatcasecmp)
2016/07/18 PHP
PHP使用PHPExcel实现批量上传到数据库的方法
2017/06/08 PHP
PHP连接MySQL数据库三种实现方法
2020/12/10 PHP
List Installed Software Features
2007/06/11 Javascript
ECMAScript 基础知识
2007/06/29 Javascript
jQueryUI写一个调整分类的拖放效果实现代码
2012/05/10 Javascript
前端轻量级MVC框架CanJS详解
2014/09/26 Javascript
JavaScript中的object转换成number或string规则介绍
2014/12/31 Javascript
如何使用vuejs实现更好的Form validation?
2017/04/07 Javascript
提升页面加载速度的插件InstantClick
2017/09/12 Javascript
Vue Element使用icon图标教程详解(第三方)
2018/02/07 Javascript
剖析Angular Component的源码示例
2018/03/23 Javascript
JavaScript数据结构与算法之检索算法示例【二分查找法、计算重复次数】
2019/02/22 Javascript
微信小程序实现传递多个参数与事件处理
2019/08/12 Javascript
Elementui表格组件+sortablejs实现行拖拽排序的示例代码
2019/08/28 Javascript
JavaScript 浏览器对象模型BOM原理与常见用法实例分析
2019/12/16 Javascript
鸿蒙系统中的 JS 开发框架
2020/09/18 Javascript
[03:05]DOTA2英雄基础教程 嗜血狂魔
2013/12/10 DOTA
[53:52]OG vs EG 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
Python导出数据到Excel可读取的CSV文件的方法
2015/05/12 Python
Python实现列表转换成字典数据结构的方法
2016/03/11 Python
通过Python模块filecmp 对文件比较的实现方法
2018/06/29 Python
Python SQL查询并生成json文件操作示例
2018/08/17 Python
python利用re,bs4,requests模块获取股票数据
2019/07/29 Python
Python numpy数组转置与轴变换
2019/11/15 Python
金属材料工程个人求职的自我评价
2013/12/04 职场文书
优秀技术工人先进材料
2014/02/17 职场文书
毕业晚会主持词
2014/03/24 职场文书
2014年庆祝国庆65周年演讲稿
2014/09/21 职场文书
2015建军节87周年演讲稿
2015/03/19 职场文书
孔子观后感
2015/06/08 职场文书
2016年“我们的节日·清明节”活动总结
2016/04/01 职场文书
导游词之茶卡盐湖
2019/11/26 职场文书