您好,登錄后才能下訂單哦!
本篇文章為大家展示了使用python3怎么提高識別圖片驗證碼實現一個自動登錄功能,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
1、selenium的webdriver
2、tesserocr或者pytesseract進行圖像識別
3、pillow的Image進行圖片處理
from selenium import webdriver import tesserocr from PIL import Image
tesserocr的安裝.
def get_code_image(file_name): driver.save_screenshot(file_name) # 截取整個屏幕并保存 code_element = driver.find_element_by_class_name("verify_code_img___1Mei_") # 定位到驗證碼元素 left = code_element.location['x'] # 定位到截圖位置 top = code_element.location['y'] right = code_element.size['width'] + left bottom = code_element.size['height'] + top im = Image.open(file_name) # 從文件讀取截圖,截取驗證碼位置再次保存 img = im.crop((left, top, right, bottom)) img.save(file_name) return file_name
def get_code_image(file_name): code_element = driver.find_element_by_class_name("verify_code_img___1Mei_") # 定位到驗證碼元素 code_element.screenshot(file_name)
注:此方法截圖時屏幕會閃動,可能引發bug,如下圖,目前沒有解決
def deal_code_image(file_name): image = Image.open(file_name) # image.show() #查看處理前的圖片 # 處理圖片去除干擾 # 將圖片轉化為灰度圖像 image = image.convert('L') threshold = 90 # 設置臨界值,臨界值可調試 table = [] for i in range(256): if i < threshold: table.append(0) else: table.append(1) image = image.point(table, '1') # image.show() #查看處理后的圖片 # 1:使用tesseract庫識別圖片中的驗證碼 # res = tesserocr.image_to_text(image) # 2:使用pytesseract庫識別圖片中的驗證碼 res = pytesseract.image_to_string(image) # print(res) #查看識別出來的文案 res = res.replace(" ", "") #去除結果中的空格 return res
處理前的圖片,有干擾,無法識別
處理后的圖片,基本可以識別
上述內容就是使用python3怎么提高識別圖片驗證碼實現一個自動登錄功能,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。