Python验证码截取识别代码实例


Posted in Python onMay 16, 2020

1.环境

  • python3.7
  • selenium
  • webdriver
  • PIL
  • Image

2.下面demo是截取“去哪儿”官网的验证码

# -*- coding=utf-8 -*-
# CodeDemo.py
# PyCharm  Slade  2019/7/20
# import selenium,os
from selenium import webdriver
from PIL import Image


def aucthcode(coderddr):
  """
  传参验证码的Xpath
  页面全图为'code.png'     命名这个你们开心就好
  验证码截图名为"aucthcode.png
  :param coderddr:
  :return:
  """
  
  driver.save_screenshot('code.png')
  element = driver.find_element_by_xpath(coderddr)    # 获取验证码的div位置
  left = element.location['x'] +280
  top = element.location['y'] +81
  right = left + element.size['width'] + int(13)
  bottom = top + element.size['height'] + int(2)
  img = Image.open('code.png')
  imgcod = img.crop((left,top,right,bottom))     # 根据 div的长宽截图
  imgcod.save('aucthcode.png')
  print((left,top,right,bottom))


if __name__ == '__main__':
  driver = webdriver.Chrome()
  driver.maximize_window()
  driver.get('https://user.qunar.com/passport/login.jsp')
  driver.find_element_by_css_selector('a.pwd-login').click()
  aucthcode('//*[@id="captcha"][1]/p[1]')
  driver.quit()


  # img = Image.open('code.png')
  # imgcod = img.crop((1392,393,1490,425))     # 根据 div的长宽截图
  # imgcod.save('aucthcodeN.png')

注:代码中的验证码截取坐标,不一定是标准的,我是通过获取元素的坐标为基础参数,然后在main里面进行调试最终得到我适用的坐标

运行效果展示 code.png

Python验证码截取识别代码实例

运行截取的验证码效果展示 aucthcode.png

Python验证码截取识别代码实例

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
闭包在python中的应用之translate和maketrans用法详解
Aug 27 Python
Python实现从log日志中提取ip的方法【正则提取】
Mar 31 Python
将TensorFlow的模型网络导出为单个文件的方法
Apr 23 Python
python 获取当天凌晨零点的时间戳方法
May 22 Python
python write无法写入文件的解决方法
Jan 23 Python
Python类的继承、多态及获取对象信息操作详解
Feb 28 Python
Python GUI编程完整示例
Apr 04 Python
PyQt5响应回车事件的方法
Jun 25 Python
python将logging模块封装成单独模块并实现动态切换Level方式
May 12 Python
python开发入门——列表生成式
Sep 03 Python
Python+OpenCV图像处理——实现直线检测
Oct 23 Python
浅谈Python协程asyncio
Jun 20 Python
基于plt.title无法显示中文的快速解决
May 16 #Python
基于python生成英文版词云图代码实例
May 16 #Python
解决Python数据可视化中文部分显示方块问题
May 16 #Python
Python使用Excel将数据写入多个sheet
May 16 #Python
python小程序之4名牌手洗牌发牌问题解析
May 15 #Python
python3 使用openpyxl将mysql数据写入xlsx的操作
May 15 #Python
使用Python实现将多表分批次从数据库导出到Excel
May 15 #Python
You might like
基于Linux调试工具strace与gdb的常用命令总结
2013/06/03 PHP
我也种棵OO树JXTree[js+css+xml]
2007/04/02 Javascript
用javascript获取textarea中的光标位置
2008/05/06 Javascript
编写兼容IE和FireFox的脚本
2009/05/18 Javascript
javascript学习笔记之10个原生技巧
2014/05/21 Javascript
NodeJS学习笔记之Connect中间件模块(一)
2015/01/27 NodeJs
分享十五款 jQuery 社交网络分享插件
2015/05/16 Javascript
在JavaScript中使用NaN值的方法
2015/06/05 Javascript
jQuery实现仿新浪微博浮动的消息提示框(可智能定位)
2015/10/10 Javascript
jquery验证手机号是否正确实例讲解
2015/11/17 Javascript
javascript基础知识
2016/06/07 Javascript
js html css实现复选框全选与反选
2016/10/09 Javascript
详解JavaScript模块化开发
2016/12/04 Javascript
微信小程序开发入门基础教程
2017/04/19 Javascript
利用js给datalist或select动态添加option选项的方法
2018/01/25 Javascript
详解vuex结合localstorage动态监听storage的变化
2018/05/03 Javascript
Node.js中你不可不精的Stream(流)
2018/06/08 Javascript
浅谈Javascript常用正则表达式应用
2019/03/08 Javascript
vue自定义正在加载动画的例子
2019/11/14 Javascript
JavaScript实现字符串与HTML格式相互转换
2020/03/17 Javascript
Javascript实现单选框效果
2020/12/09 Javascript
Python创建文件和追加文件内容实例
2014/10/21 Python
Python实现把回车符\r\n转换成\n
2015/04/23 Python
Python语言的面相对象编程方式初步学习
2016/03/12 Python
利用Python进行异常值分析实例代码
2017/12/07 Python
python读取各种文件数据方法解析
2018/12/29 Python
python用win32gui遍历窗口并设置窗口位置的方法
2019/07/26 Python
python中eval与int的区别浅析
2019/08/11 Python
Anaconda之conda常用命令介绍(安装、更新、删除)
2019/10/06 Python
python3.8.1+selenium实现登录滑块验证功能
2020/05/22 Python
50道外企软件测试面试题
2014/08/18 面试题
安全生产一岗双责责任书
2014/07/28 职场文书
售后服务承诺函格式
2015/01/21 职场文书
单位收入证明范本
2015/06/18 职场文书
MySQL分区以及建索引的方法总结
2022/04/13 MySQL
python中使用redis用法详解
2022/12/24 Redis