使用python3怎么提高识别图片验证码实现一个自动登录功能

  介绍

本篇文章为大家展示了使用python3怎么提高识别图片验证码实现一个自动登录功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

会用到的库的

1,硒的webdriver
2, tesserocr或者pytesseract进行图像识别
3,枕头的图片进行图片处理

得到selenium  import  webdriver   import  tesserocr   得到PIL  import 图像

tesserocr的安装。

获取验证码图片方法1:

def  get_code_image (file_name):   ,driver.save_screenshot (file_name), #,截取整个屏幕并保存=,,code_element  driver.find_element_by_class_name (“verify_code_img___1Mei_"), #,定位到验证码元素=,,left  code_element.location [& # 39; x # 39;], #,定位到截图位置=,,top  code_element.location [& # 39; y # 39;】=,,right  code_element.size[& # 39;宽度# 39;],+,离开了=,,bottom  code_element.size[& # 39;高度# 39;],+,顶部   ,我=,Image.open (file_name), #,从文件读取截的图,截取验证码位置再次保存=,,img  im.crop(左,,,,对,,底部))   ,img.save (file_name)   以前,return  file_name

获取验证码图片方法2:

def  get_code_image (file_name):=,,code_element  driver.find_element_by_class_name (“verify_code_img___1Mei_"), #,定位到验证码元素,   之前,code_element.screenshot (file_name)

注:此方法截图时屏幕会闪动,可能引发错误,如下图,目前没有解决

使用python3怎么提高识别图片验证码实现一个自动登录功能

处理验证码图片

def  deal_code_image (file_name):=,,image  Image.open (file_name)   ,# image.show(), #查看处理前的图片   #,处理图片去除干扰   ,#将图片转化为灰度图像=,,image  image.convert (& # 39; l # 39;)   ,   90年,threshold =,, #,设置临界值,临界值可调试=,table  []   ,for 小姐:拷贝范围(256):   if 才能小姐:& lt;,阈值:   ,,table.append (0)   其他的才能:   ,,table.append (1)=,,image  image.point(表,,& # 39;1 & # 39;)   ,# image.show(), #查看处理后的图片   ,# 1:使用超正方体库识别图片中的验证码   ,# res =, tesserocr.image_to_text(图片)   ,# 2:使用pytesseract库识别图片中的验证码=,,res  pytesseract.image_to_string(图片)      ,#打印(res), #查看识别出来的文案=,,res  res.replace(,,,,,,,), #去除结果中的空格   res, return 

处理前的图片,有干扰,无法识别

使用python3怎么提高识别图片验证码实现一个自动登录功能

处理后的图片,基本可以识别

使用python3怎么提高识别图片验证码实现一个自动登录功能

上述内容就是使用python3怎么提高识别图片验证码实现一个自动登录功能,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

使用python3怎么提高识别图片验证码实现一个自动登录功能