工作中,如何用python和selenium提取验证码呢?
获取验证码的方法按照以往的经验,有4种方法:
- 让开发帮忙去掉验证码代码,重新部署环境
- 弄个万能验证码,每次登陆都可以登陆
- 用cookie添加登录名和密码避开验证码的方式
- 老老实实获取验证码图片,识别出验证码
遇到好说话的开发,他一般都能帮忙去掉验证码的代码 。
但是代码去掉了,还需要重新部署一套没验证码的环境,麻烦,不推荐 。
方法二:
还是需要开发的帮助,弄一个万能验证码,但测试环境弄的万能验证码可千万不能搞到正式环境 。
故不推荐,还是先想想别的办法 。
方法三:
该方法的难点是:如何在cookie中找到登陆用户名和密码的name,再将用户名和密码添加进去 。
方法四:
最容易想到的办法,重点讲这个方法,此处有2个思路 。
- 截图登陆页面,再截取验证码图片,识别;
- 直接在登陆页面,定位到验证码,将验证码图片另存为,识别;
文章插图
pytesseract的安装pytesseract依赖于tesseract,需要先安装tesseract 。
安装Tesseract模块:
git文档地址:https://digi.bib.uni-mannheim.de/tesseract/
请安装不带dev的稳定版,下载后就是一个exe安装包,直接右击安装即可 。
一般安装在默认路径,如果不在默认路径,请记住该路径 。
下载培训数据:
需要下载相应的培训数据,直接下载整个zip文件,解压后将文件复制到’tessdata‘目录中 。
一般为:C:\\Program Files (x86)\\Tesseract-OCR\\tessdata
文章插图
配置环境变量:
- 编辑系统变量里面 path,添加安装路径:C:\\Program Files (x86)\\Tesseract-OCR
- 添加TESSDATA_PREFIX变量,值为:C:\\Program Files (x86)\\Tesseract-OCR\\tessdata
- 最后,在cmd命令模式下测试是否安装成功:
- tesseract test.jpg text -l chi_sim
pip install pillow #一个python的图像处理库,pytesseract依赖
pip install pytesseract
修改pytesseract.py文件:
找到pytesseract的安装包,C:\\Python34\\Lib\\site-packages\\pytesseract 。
编辑pytesseract.py文件,该步骤必须做,不然编译时会报错 。
修改内容如下:
tesseract_cmd = \'C:/Program Files (x86)/Tesseract-OCR/tesseract.exe\'
文章插图
代码实现上面讲述了实现的2种思路,现在分别说明代码实现过程 。
思路一:
- 先计算浏览器与登陆页面截图的比例值
- 再计算对应的验证码图片位置
- 再将获取到的验证码图片,先进行二值化处理
- 处理后的图像采用pytesseract库转化
文章插图
截图保存验证码
文章插图
二值化处理验证码图片
文章插图
验证码图片转化
上述图片转化过程中,注意参数设置 。
不设置参数时,总是将1转化为7,设置后转化准确率杠杠滴 。
【如何获取验证码 获取验证码具体操作方法】当然,目前只是识别数字型的验证码,文字类型的方法应该是类似的 。
思路二:
- 先定位到验证码的位置
- 将验证码图片另存到一个路径
- 该路径下获取最新的验证码图片
- 验证码图片二值化处理
- 处理后的图像采用pytesseract库转化
文章插图
验证码另存为图片
后面的图片处理和获取验证码过程与思路一相同 。
- 苹果怎么导入自定义动态壁纸 苹果手机如何更换动态壁纸
- 属牛的2023的运势如何
- 如何在excel中做表格 excel做表格详细操作步骤
- 如何申请申请微信公众号 申请微信公众号的详细操作步骤
- 如何把word文档转换成excel表格 word转换excel表格详细操作步骤
- win7后缀名隐藏了怎么打开 Win7如何显示文件的后缀名
- 学生应该如何预防校园暴力扒衣
- 学习网络推广的7种方法及平台 如何学习网络推广
- 如何让淘宝店铺有流量 淘宝流量提升
- 百度做推广从以下两个方面入手 百度该如何做推广