Python之pytesseract 識別驗證碼
1、驗證碼來一個

2、適合什么樣的驗證碼呢?
只能識別簡單、靜態、無重疊、只有數字字母的驗證碼
3、實際應用:模擬人工登錄、頁面內容識別、爬蟲抓取信息
步驟一:
下載工具Tesseract-OCR,下載地址https://digi.bib.uni-mannheim.de/tesseract/,下載成功后,傻瓜式安裝在英文路徑下
安裝后或出現一個目錄:D:\syspath\tesseract\Tesseract-OCR,將安裝路徑配置環境變量
步驟二:
添加tessdata系統變量,要注意是系統變量:名稱TESSDATA_PREFIX;路徑D:\syspath\tesseract\Tesseract-OCR\tessdata
dos命令窗口輸入:tesseract --version 展示版本信息后說明OK
驗證圖片識別:
同樣dos命令窗口:tesseract C:\a.png D:\1.txt
a.png是圖片,1.txt是識別后數據存放文件
如何識別頁面上的信息並抓取信息
安裝pytesserac模塊:pip install pytesserac
修改pytesseract.py文件中tesseract_cmd字段信息
例如:將tesseract_cmd = 'tesseract'修改為:tesseract_cmd = 'D:/Program Files (x86)/Tesseract-OCR/tesseract.exe'
這樣就安裝好pytesserac模塊了
使用:
一個獲取登陸頁面驗證碼的腳本#-*- coding = utf - 8 -*-
import time , sys
import pytesseract
from PIL import Image,ImageEnhance
from selenium import webdriver
screenImg = "D:/checkcode.png"
driver = webdriver.Chrome
driver.get(https://192.168.1.1:8080/login)
driver.maximize_window()
driver.save_screenshot(screenImg) # 截取當前網頁,該網頁有我們需要的驗證碼
location = self.param1.find_element_by_xpath("//img[@class='check-code']").location
size = self.param1.find_element_by_xpath("//img[@class='check-code']").size
left = location['x']
top = location['y']
right = location['x'] + size['width']
bottom = location['y'] + size['height']
img = Image.open(screenImg).crop((left, top, right, bottom))
img = img.convert('L') # 轉換模式:L | RGB
img = ImageEnhance.Contrast(img) # 增強對比度
img = img.enhance(2.0) # 增加飽和度
img.save(screenImg)
# 讀取截圖
img = Image.open(screenImg)
# 獲取驗證碼
code = pytesseract.image_to_string(img)
# 打印驗證碼
print(list(code))
以上是抓取一個頁面的驗證碼,那么同樣可以使用在爬蟲上面去
樓主萌新,不喜勿噴 哈哈哈
