python之验证码截取与验证码识别
Posted 肖疯子
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python之验证码截取与验证码识别相关的知识,希望对你有一定的参考价值。
- 环境
python3.7
selenium
webdriver
PIL
Image
2.下面demo是截取“去哪儿”官网的验证码
1 # -*- coding=utf-8 -*- 2 # CodeDemo.py 3 # PyCharm Slade 2019/7/20 4 # import selenium,os 5 from selenium import webdriver 6 from PIL import Image 7 8 9 def aucthcode(coderddr): 10 """ 11 传参验证码的Xpath 12 页面全图为\'code.png\' 命名这个你们开心就好 13 验证码截图名为"aucthcode.png 14 :param coderddr: 15 :return: 16 """ 17 18 driver.save_screenshot(\'code.png\') 19 element = driver.find_element_by_xpath(coderddr) # 获取验证码的div位置 20 left = element.location[\'x\'] +280 21 top = element.location[\'y\'] +81 22 right = left + element.size[\'width\'] + int(13) 23 bottom = top + element.size[\'height\'] + int(2) 24 img = Image.open(\'code.png\') 25 imgcod = img.crop((left,top,right,bottom)) # 根据 div的长宽截图 26 imgcod.save(\'aucthcode.png\') 27 print((left,top,right,bottom)) 28 29 30 if __name__ == \'__main__\': 31 driver = webdriver.Chrome() 32 driver.maximize_window() 33 driver.get(\'https://user.qunar.com/passport/login.jsp\') 34 driver.find_element_by_css_selector(\'a.pwd-login\').click() 35 aucthcode(\'//*[@id="captcha"][1]/p[1]\') 36 driver.quit() 37 38 39 # img = Image.open(\'code.png\') 40 # imgcod = img.crop((1392,393,1490,425)) # 根据 div的长宽截图 41 # imgcod.save(\'aucthcodeN.png\')
注:代码中的验证码截取坐标,不一定是标准的,我是通过获取元素的坐标为基础参数,然后在main里面进行调试最终得到我适用的坐标
运行效果展示 code.png
运行截取的验证码效果展示 aucthcode.png
以上是关于python之验证码截取与验证码识别的主要内容,如果未能解决你的问题,请参考以下文章
python验证码识别教程之灰度处理二值化降噪与tesserocr识别