工作中,如何用python和selenium提取验证码呢?

获取验证码的方法

按照以往的经验,有4种方法:

  1. 让开发帮忙去掉验证码代码,重新部署环境
  2. 弄个万能验证码,每次登陆都可以登陆
  3. 用cookie添加登录名和密码避开验证码的方式
  4. 老老实实获取验证码图片,识别出验证码

方法一:

遇到好说话的开发,他一般都能帮忙去掉验证码的代码。

但是代码去掉了,还需要重新部署一套没验证码的环境,麻烦,不推荐。

方法二:

还是需要开发的帮助,弄一个万能验证码,但测试环境弄的万能验证码可千万不能搞到正式环境。

故不推荐,还是先想想别的办法。

方法三:

该方法的难点是:如何在cookie中找到登陆用户名和密码的name,再将用户名和密码添加进去。

方法四:

最容易想到的办法,重点讲这个方法,此处有2个思路。

  1. 截图登陆页面,再截取验证码图片,识别;
  2. 直接在登陆页面,定位到验证码,将验证码图片另存为,识别;

该方法实现过程中,用到第三方库pytesseract,所以先安装需要引用的库。

pytesseract的安装

pytesseract依赖于tesseract,需要先安装tesseract。

安装Tesseract模块:

git文档地址:https://digi.bib.uni-mannheim.de/tesseract/

请安装不带dev的稳定版,下载后就是一个exe安装包,直接右击安装即可。

一般安装在默认路径,如果不在默认路径,请记住该路径。

下载培训数据:

需要下载相应的培训数据,直接下载整个zip文件,解压后将文件复制到’tessdata‘目录中。

一般为:C:Program Files (x86)Tesseract-OCRessdata

配置环境变量:

  1. 编辑系统变量里面 path,添加安装路径:C:Program Files (x86)Tesseract-OCR
  2. 添加TESSDATA_PREFIX变量,值为:C:Program Files (x86)Tesseract-OCRessdata
  3. 最后,在cmd命令模式下测试是否安装成功:
  4. tesseract test.jpg text -l chi_sim

安装python的第三方库: 

pip install pillow #一个python的图像处理库,pytesseract依赖

pip install pytesseract

修改pytesseract.py文件:

找到pytesseract的安装包,C:Python34Libsite-packagespytesseract。

编辑pytesseract.py文件,该步骤必须做,不然编译时会报错。

修改内容如下:

tesseract_cmd = 'C:/Program Files (x86)/Tesseract-OCR/tesseract.exe'

代码实现

上面讲述了实现的2种思路,现在分别说明代码实现过程。

思路一:

  1. 先计算浏览器与登陆页面截图的比例值
  2. 再计算对应的验证码图片位置
  3. 再将获取到的验证码图片,先进行二值化处理
  4. 处理后的图像采用pytesseract库转化

截图保存验证码

二值化处理验证码图片

验证码图片转化

上述图片转化过程中,注意参数设置。

不设置参数时,总是将1转化为7,设置后转化准确率杠杠滴。

当然,目前只是识别数字型的验证码,文字类型的方法应该是类似的。

思路二:

  1. 先定位到验证码的位置
  2. 将验证码图片另存到一个路径
  3. 该路径下获取最新的验证码图片
  4. 验证码图片二值化处理
  5. 处理后的图像采用pytesseract库转化

验证码另存为图片

后面的图片处理和获取验证码过程与思路一相同。

selenium 验证码识别_如何获取验证码?相关推荐

  1. python实现验证码识别_python实现图文验证码识别

    一,验证码类别 以下为网站常见的验证码: 1.图片验证码:常见的为英文.数字.汉字,计算题等类型的验证码. 2.行为式验证码: 常见的有滑动拼图,文字点选,图标点选,推理拼图等类型的验证码. 3.手机 ...

  2. c++ 图片验证码识别_基于tensorflow 实现端到端的OCR:二代身份证号识别

    最近在研究OCR识别相关的东西,最终目标是能识别身份证上的所有中文汉字+数字,不过本文先设定一个小目标,先识别定长为18的身份证号,当然本文的思路也是可以复用来识别定长的验证码识别的. 本文实现思路主 ...

  3. [验证码识别技术] 字符型验证码终结者-CNN+BLSTM+CTC

    验证码识别(少样本,高精度)项目地址:https://github.com/kerlomz/captcha_trainer 1. 前言 本项目适用于Python3.6,GPU>=NVIDIA G ...

  4. python图像验证码识别_python 简单图像识别--验证码

    python  简单图像识别--验证码 记录下,准备工作安装过程很是麻烦. 首先库:pytesseract,image,tesseract,PIL windows安装PIL,直接exe进行安装更方便( ...

  5. 验证码识别的原理python_Python验证码识别处理实例

    一.准备工作与代码实例 1.PIL.pytesser.tesseract (1)安装PIL:下载地址:http://www.pythonware.com/products/pil/(CSDN下载) 下 ...

  6. gif验证码识别,gif动态验证码识别

    目录 一.背景 二.前提条件 三.基本思路 四.具体实现步骤 五.完整代码 一.背景 本案例研究的对象为某一类gif验证码识别,图例如下,这种验证码的特点是由多帧(图例是4帧,和验证码个数一样)图片组 ...

  7. python验证码识别算法_Python网站验证码识别

    0x00 识别涉及技术 验证码识别涉及很多方面的内容.入手难度大,但是入手后,可拓展性又非常广泛,可玩性极强,成就感也很足. 验证码图像处理 验证码图像识别技术主要是操作图片内的像素点,通过对图片的像 ...

  8. python验证码识别爆破_python-i春秋验证码识别

    python+机器学习+验证码识别+源码 简单介绍 最近在写某网站的自动注册,在注册的过程中遇到一些问题,如js的执行.验证码的识别等等,今天给大家如何用python通过机器学习的方式实现验证码的识别 ...

  9. python验证码识别接口 服务器_python验证码识别模块

    (白嫖)这是一个为麻瓜设计的本地OCR模块 只需要简单几步操作即可拥有两大通用识别模块,让你在工作中畅通无阻. 测试图片 test1.png 测试图片 test2.jpg SDK类参数 参数名 必选 ...

最新文章

  1. PHP采集商家信息及采集方法概述(上)
  2. [密码学] DES(一)
  3. MySQL存储引擎之Myisam和Innodb总结性梳理
  4. Matlab | Matlab从入门到放弃(16)——二维图和三维图
  5. Notepad++插件Base64编解码
  6. kotlin支持jdk1.8编译,使用Java8特性
  7. js设置北京时区_盘一盘 Python 系列特别篇十九之 时区和夏时令
  8. 微信emoji表情编码的处理与储存
  9. ajax上传图片 java_Java+ajax+图片上传
  10. TongLINK/Q8.X版本的错误号整理
  11. 家用计算机时间,电脑时间校准方法,怎么校准电脑时间
  12. 钓鱼网站制作 ---- Setoolkit 克隆web页面钓鱼
  13. 星三角启动的优缺点和内外接的区别
  14. 几分钟来了解下什么是嵌入式开发?
  15. 机器学习实例----美国人口收入分析
  16. mysql sphinx windows安装_window下安装sphinx实例
  17. SangforAC(深信服)Web单点登录
  18. esp32--无线控制灯
  19. 亚马逊商品图片使用技巧和规范你都了解吗?
  20. win7资源服务器未响应,Win7资源管理器未响应怎么办 试试这个方法 - 驱动管家

热门文章

  1. jittor和pytorch 生成网络对比之clustergan
  2. AutoMl 的pytorch类似代码
  3. 爬虫的另一工具splash挑战selenium
  4. javascript全局观
  5. Nginx+MSM+Tomcat做负载均衡,session共享
  6. Block介绍(二)内存管理与其他特性
  7. 使用HtmlGenericControl控件动态产生一些HtmlControls
  8. 2012年5月法国旅游网站排名
  9. freopen - C/C++文件输入输出利器
  10. Python_note3 基本数据类型+time库使用