1.安裝py庫:pytesseract,PIL
pip install pytesseract pip install PILLOW
如果安裝時,出現權限不足:
pip install --user pytesseract pip install --user PILLOW
2.tesseract程序下載安裝
2.1 tessercat下載地址:https://digi.bib.uni-mannheim.de/tesseract/ //請依據自己的操作系統下載exe文件安裝
2.2 環境變量配置
用戶變量,系統變量都添加:PATH C:\Program Files (x86)\Tesseract-OCR; //這是tesseract的安裝目錄
系統變量添加:TESSDATA_PREFIX C:\Program Files (x86)\Tesseract-OCR
//有的博文寫到“TESSDATA_PREFIX”目錄需要到tessdata,但是我電腦配置到tessdata就會多一級tessdata目錄,命令測試時會找不到,所以這里自己依據調試哪個OK用哪個~

2.3 驗證是否安裝/配置成功
在需識別的圖片目錄下執行命令:tesseract test.png output_1 –l eng
test.png:徐識別的文件
output_1:識別后存入的文件名(默認txt格式)
-l eng:語言包 英文

3.pycharm驗證碼登錄
驗證碼圖片清晰,不去需要背景去噪(干擾線),轉換為灰度圖

# 驗證碼登錄
import time
from PIL import ImageEnhance
from selenium import webdriver
# 避免出現系統錯誤:[WinError 2] 系統找不到指定的文件
try:
import Image
except ImportError:
from PIL import Image
import pytesseract
pytesseract.pytesseract.tesseract_cmd = r'C:/Program Files (x86)/Tesseract-OCR/tesseract.exe'
# 打開瀏覽器
url = "http://XXX.XX.XX.XX:XXX/SPMTest/login.html"
browser = webdriver.Chrome()
browser.implicitly_wait(10)
browser.maximize_window()
browser.get(url)
# 用戶元素
userElement = browser.find_element_by_id("loginname")
passElement = browser.find_element_by_id("password1")
codeElement = browser.find_element_by_id("code")
lgButton = browser.find_element_by_id("login_value")
# 驗證碼截取+識別(頁面驗證碼地址不是固定連接,所以采用截圖方式)
# 截取屏幕內容,保存到本地
browser.save_screenshot("D://PyDemo/01.png")
# 打開截圖,獲取驗證碼位置,截取保存驗證碼
ran = Image.open("D://PyDemo/01.png")
box = (1165, 380, 1240, 415) # 獲取驗證碼位置,手動定位(左,上,右,下)--驗證碼圖片的絕對定位
ran.crop(box).save("D://PyDemo/02.png")
# 獲取驗證碼圖片,讀取驗證碼
code = pytesseract.image_to_string(Image.open('D://PyDemo/02.png'))
print(code)
# 輸入數據登錄
userElement.send_keys('tt')
passElement.send_keys('1234')
codeElement.send_keys(code)
time.sleep(3)
lgButton.click()
記錄下,這個系統的登錄腳本,特殊情況~(場景:密碼輸入框有兩個id處理.....)

