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

 


					


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM