工作中,如何用python和selenium提取验证码呢?
按照以往的经验,有4种方法:
方法一:
遇到好说话的开发,他一般都能帮忙去掉验证码的代码。
但是代码去掉了,还需要重新部署一套没验证码的环境,麻烦,不推荐。
方法二:
还是需要开发的帮助,弄一个万能验证码,但测试环境弄的万能验证码可千万不能搞到正式环境。
故不推荐,还是先想想别的办法。
方法三:
该方法的难点是:如何在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
配置环境变量:
安装python的第三方库:
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种思路,现在分别说明代码实现过程。
思路一:
截图保存验证码
二值化处理验证码图片
验证码图片转化
上述图片转化过程中,注意参数设置。
不设置参数时,总是将1转化为7,设置后转化准确率杠杠滴。
当然,目前只是识别数字型的验证码,文字类型的方法应该是类似的。
思路二:
验证码另存为图片
后面的图片处理和获取验证码过程与思路一相同。
免责声明:本文为转载,非本网原创内容,不代表本网观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
如有疑问请发送邮件至:bangqikeconnect@gmail.com