Python - WebDriver 識別登錄驗證碼
阿新 • • 發佈:2017-09-30
增強 import ive screen 什麽 open auth odi img
Python - WebDriver 識別登錄驗證碼
沒什麽可說的直接上代碼!
#-*-coding:utf-8-*- # Time:2017/9/29 7:16 # Author:YangYangJun import time from pytesseract import * from selenium import webdriver from PIL import Image, ImageEnhance import baseinfo url = baseinfo.url driver = webdriver.Firefox() driver.maximize_window() driver.get(url) time.sleep(3) driver.save_screenshot(‘verifyCode.png‘) #截取當前網頁,該網頁有我們需要的驗證碼 time.sleep(2) #定位驗證碼 imgelement = driver.find_element_by_xpath(".//*[@id=‘imgObj‘]") #獲取驗證碼x,y軸坐標 location = imgelement.location #獲取驗證碼的長寬 size = imgelement.size driver.quit() #寫成我們需要截取的位置坐標 rangle = (int(location[‘x‘]),int(location[‘y‘]),int(location[‘x‘]+size[‘width‘]),int(location[‘y‘]+size[‘height‘])) # 打開截圖 i = Image.open(‘verifyCode.png‘) #使用Image的crop函數,從截圖中再次截取我們需要的區域 imgry=i.crop(rangle) #使用Image的crop函數,從截圖中再次截取我們需要的區域 imgry.save(‘getVerifyCode.png‘) im=Image.open(‘getVerifyCode.png‘) im = im.convert(‘L‘)#圖像加強,二值化 sharpness =ImageEnhance.Contrast(im)#對比度增強 sharp_img = sharpness.enhance(2.0) sharp_img.save("newVerifyCode.png") newVerify = Image.open(‘newVerifyCode.png‘) # 使用image_to_string識別驗證碼 text=image_to_string(newVerify).strip() #使用image_to_string識別驗證碼 #text1 = image_to_string(‘newVerifyCode.png‘).strip() print text #print text1
Python - WebDriver 識別登錄驗證碼