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