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获取文件ssdeep值的方法
Oct 05 Python
Python中使用partial改变方法默认参数实例
Apr 28 Python
Python打印“菱形”星号代码方法
Feb 05 Python
Python实现通讯录功能
Feb 22 Python
django 多数据库配置教程
May 30 Python
Scrapy使用的基本流程与实例讲解
Oct 21 Python
Pycharm更换python解释器的方法
Oct 29 Python
Pycharm设置utf-8自动显示方法
Jan 17 Python
Python批量修改图片分辨率的实例代码
Jul 04 Python
Python制作微信好友背景墙教程(附完整代码)
Jul 17 Python
利用Python产生加密表和解密表的实现方法
Oct 15 Python
Sentry错误日志监控使用方法解析
Nov 12 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/06/14 PHP
浅谈php扩展imagick
2014/06/02 PHP
php实现模拟登陆方正教务系统抓取课表
2015/05/19 PHP
Laravel最佳分割路由文件(routes.php)的方式
2016/08/04 PHP
PHP 多进程与信号中断实现多任务常驻内存管理实例方法
2019/10/04 PHP
JQuery 国际象棋棋盘 实现代码
2009/06/26 Javascript
Javascript面象对象成员、共享成员变量实验
2010/11/19 Javascript
JavaScript编程的单例设计模讲解
2015/11/10 Javascript
JS中原始值和引用值的储存方式示例详解
2018/03/23 Javascript
详解微信小程序图片地扯转base64解决方案
2019/08/18 Javascript
微信小程序自定义tabbar custom-tab-bar 6s出不来解决方案(cover-view不兼容)
2019/11/01 Javascript
Javascript查看大图功能代码实现
2020/05/07 Javascript
Python实现二分法算法实例
2015/02/02 Python
python使用PythonMagick将jpg图片转换成ico图片的方法
2015/03/26 Python
Python脚本实现Web漏洞扫描工具
2016/10/25 Python
python 开发的三种运行模式详细介绍
2017/01/18 Python
python 表达式和语句及for、while循环练习实例
2017/07/07 Python
R vs. Python 数据分析中谁与争锋?
2017/10/18 Python
python中强大的format函数实例详解
2018/12/05 Python
Python3.5内置模块之os模块、sys模块、shutil模块用法实例分析
2019/04/27 Python
python实现nao机器人手臂动作控制
2019/04/29 Python
将Python字符串生成PDF的实例代码详解
2019/05/17 Python
Python中Unittest框架的具体使用
2019/08/27 Python
Python栈的实现方法示例【列表、单链表】
2020/02/22 Python
基于html和CSS3制作酷炫的导航栏
2015/09/23 HTML / CSS
加拿大健康、婴儿和美容产品在线购物:Well.ca
2016/11/30 全球购物
西班牙太阳镜品牌:Hawkers
2018/03/11 全球购物
Ever New加拿大官网:彰显女性美
2018/10/05 全球购物
Notino芬兰:购买香水和化妆品
2019/04/15 全球购物
美国肌肉和力量商店:Muscle & Strength
2019/06/22 全球购物
澳大利亚窗帘商店:Curtain Wonderland
2019/12/01 全球购物
成龙洗发水广告词
2014/03/14 职场文书
大学第二课堂活动总结
2014/07/08 职场文书
体育专业求职信
2014/07/16 职场文书
对学校的意见和建议
2015/06/04 职场文书
Nginx安装配置详解
2022/06/25 Servers