python自动化实现登录获取图片验证码功能


Posted in Python onNovember 20, 2019

主要记录一下:图片验证码

1.获取登录界面的图片

2.获取验证码位置

3.在登录页面截取验证码保存

4.调用百度api识别(目前准确率较高的识别图片api)

本次登录的系统页面,可以看到图片验证码的位置

python自动化实现登录获取图片验证码功能

from selenium import webdriver
import time
from PIL import Image
base_url = '***********'
browser = webdriver.Chrome()
browser.maximize_window()
browser.implicitly_wait(10)
browser.get(base_url)
# (1)登录页面截图
browser.save_screenshot("D:/pic.png")#可以修改保存地址
# (2)基操
browser.find_element_by_name("username").send_keys("gxx")
browser.find_element_by_name("password").send_keys("123456")
time.sleep(2)
# (3)获取图片验证码坐标
code_ele = browser.find_element_by_xpath("//*[@id='app']/div/div[1]/form/div[3]/div/div/div[2]/div/img")
print("验证码的坐标为:", code_element.location)#控制台查看{'x': 1086, 'y': 368}
print("验证码的大小为:", code_element.size)# 图片大小{'height': 40, 'width': 110}
# (4)图片4个点的坐标位置
left = code_ele.location['x']#x点的坐标
top = code_ele.location['y']#y点的坐标
right = code_ele.size['width']+left#上面右边点的坐标
down = code_ele.size['height']+top#下面右边点的坐标
image = Image.open('D:/pic.png')
# (4)将图片验证码截取
code_image = image.crop((left, top, right, height))
code_image.save('D:/pic1.png')#截取的验证码图片保存为新的文件

上面我们已经把图片保存到本地

这就是我们截取的验证码

python自动化实现登录获取图片验证码功能

接下来要调用 百度ocr识别

链接: https://ai.baidu.com/docs#/

然后可以选择通用文字识别或者 高精度版本,这个 看个人选择,不过验证码识别还是选择高精度 版本(也不一定识别的出来 大家还是佛吧,测试的时候让开发把验证码去掉嘻嘻)
自己去申请一个百度云账号,然后开通文字识别服务…就酱
新建一个py文件

#百度ocr提供了模板,我们直接复制就ok
#下载通用文字识别的python sdk,一定要放在你写的代码的文件夹下面
from aip import AipOcr 
from os import path
def baiduOCR(picfile,outfile):#picfile:图片文件名 outfile:输出文件
  filename = path.basename(picfile)#图片名称
  #百度提供
  """ 你的 APPID AK SK """
  APP_ID = ''#这是你产品服务的appid
  API_KEY = ''#这是你产品服务的appkey
  SECRET_KEY = ''#这是你产品服务的secretkey
  client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
  i = open(picfile, 'rb')
  img = i.read()

  print("正在识别图片:\t" + filename)
  """ 调用通用文字识别(高精度版) """
  message = client.basicAccurate(img)
  print("识别成功!")
  i.close()
  with open(outfile, 'a+') as fo:#这边是写进.txt文件
    fo.writelines("*" * 60 + '\n')#搞点花里胡哨的做区分
    fo.writelines("识别图片:\t" + filename + "\n" * 2)
    fo.writelines("文本内容:\n")
    # 输出文本内容
    for text in message.get('words_result'):#识别的内容 
      fo.writelines(text.get('words') + '\n')
    fo.writelines('\n' * 2)
  print("文本导出成功!")
  print()

if __name__ == '__main__' :
  outfile = 'D:/export1.txt'#保存的文件
  baiduOCR('D:/pic1.png', outfile)
  print('图片文本提取结束!文本输出结果位于 %s 文件中。' % outfile)

python自动化实现登录获取图片验证码功能

这样就识别出来 了,这个能识别正确我也是惊讶了
毕竟之前好多次都 识别的不准确
好!这样 验证码就识别出来 惹,然后把识别的内容输进框子里,点击登录就ok

总结

以上所述是小编给大家介绍的python自动化实现登录获取图片验证码功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
python实现远程通过网络邮件控制计算机重启或关机
Feb 22 Python
python读取文本中的坐标方法
Oct 14 Python
Python TestCase中的断言方法介绍
May 02 Python
Python实现栈的方法详解【基于数组和单链表两种方法】
Feb 22 Python
python自动点赞功能的实现思路
Feb 26 Python
基于python实现计算且附带进度条代码实例
Mar 31 Python
浅谈Python中os模块及shutil模块的常规操作
Apr 03 Python
Ubuntu中配置TensorFlow使用环境的方法
Apr 21 Python
Python分析最近大火的网剧《隐秘的角落》
Jul 02 Python
基于python tkinter的点名小程序功能的实例代码
Aug 22 Python
torchxrayvision包安装过程(附pytorch1.6cpu版安装)
Aug 26 Python
Python 开发工具通过 agent 代理使用的方法
Sep 27 Python
python通过链接抓取网站详解
Nov 20 #Python
python爬虫之遍历单个域名
Nov 20 #Python
python matplotlib 画dataframe的时间序列图实例
Nov 20 #Python
python中Lambda表达式详解
Nov 20 #Python
TensorFlow索引与切片的实现方法
Nov 20 #Python
50行Python代码实现视频中物体颜色识别和跟踪(必须以红色为例)
Nov 20 #Python
python中必要的名词解释
Nov 20 #Python
You might like
最令PHP初学者们头痛的十四个问题
2007/01/15 PHP
PHP判断指定时间段的2个方法
2014/03/14 PHP
php实现的zip文件内容比较类
2014/09/24 PHP
curl 出现错误的调试方法(必看)
2017/02/13 PHP
PHP实现的最大正向匹配算法示例
2017/12/19 PHP
基于Jquery的动态添加控件并取值的实现代码
2010/09/24 Javascript
jQuery插件的写法分享
2013/06/12 Javascript
js导出格式化的excel 实例方法
2013/07/17 Javascript
jQuery中attr()和prop()在修改checked属性时的区别
2014/07/18 Javascript
Javascript中获取对象的原型对象的方法小结
2015/02/25 Javascript
JavaScript分页功能的实现方法
2015/04/25 Javascript
BootStrap中Datetimepicker和uploadify插件应用实例小结
2016/05/26 Javascript
巧用Vue.js+Vuex制作专门收藏微信公众号的app
2016/11/03 Javascript
canvas红包照片实例分享
2017/02/28 Javascript
AngularJs导出数据到Excel的示例代码
2017/08/11 Javascript
vue cli 全面解析
2018/02/28 Javascript
JS实现点击生成UUID的方法完整实例【基于jQuery】
2019/06/12 jQuery
layui 实现表格某一列显示图标
2019/09/19 Javascript
webpack打包优化的几个方法总结
2020/02/10 Javascript
详解微信小程序(Taro)手动埋点和自动埋点的实现
2021/03/02 Javascript
Python实现模拟分割大文件及多线程处理的方法
2017/10/10 Python
python利用paramiko连接远程服务器执行命令的方法
2017/10/16 Python
tensorflow 用矩阵运算替换for循环 用tf.tile而不写for的方法
2018/07/27 Python
Python实现的IP端口扫描工具类示例
2019/02/15 Python
django 读取图片到页面实例
2020/03/27 Python
Python操作word文档插入图片和表格的实例演示
2020/10/25 Python
美国著名的团购网站:Woot
2016/08/02 全球购物
远程Wi-Fi宠物监控相机:Petcube
2017/04/26 全球购物
给同事的道歉信
2014/01/11 职场文书
工作表现自我评价
2014/02/08 职场文书
雷锋精神演讲稿
2014/05/13 职场文书
任命书格式
2014/06/05 职场文书
公民授权委托书
2014/10/15 职场文书
护士医德医风心得体会
2016/01/25 职场文书
500字作文之难忘的同学
2019/12/20 职场文书
动画「半妖的夜叉姬」新BD特典图公开
2022/03/22 日漫