python之验证码截取与验证码识别

Posted 肖疯子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python之验证码截取与验证码识别相关的知识,希望对你有一定的参考价值。

  1. 环境

     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识别

python网络爬虫之如何识别验证码

python接口自动化怎么串联登录接口与图形验证码借口

爬虫遇到头疼的验证码?Python实战讲解弹窗处理和验证码识别

Python爬虫之网站验证码识别

Python 自动化之验证码识别