亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python驗(yàn)證碼識別方式(使用pytesseract庫)

 更新時間:2025年06月04日 10:50:09   作者:深海藍(lán)山的博客  
這篇文章主要介紹了Python驗(yàn)證碼識別方式(使用pytesseract庫),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

python中使用pytesseract庫進(jìn)行ocr識別,需要安裝Tesseract-OCR,通過指定pytesseract.tesseract_cmd路徑,可以將esseract-OCR集成到pytho程序中,避免客戶端電腦的依賴。

1、安裝Tesseract-OCR

Tesseract是一個高度精確的開源OCR(光學(xué)字符識別)系統(tǒng),廣泛應(yīng)用于文本識別項(xiàng)目中。

下載地址:

安裝程序:下載后安裝程序

中文包下載:

  • 地址:https://gitcode.com/open-source-toolkit/90e2f
  • 下載了最新版本的chi-sim.traineddata文件,復(fù)制到Tesseract的tessdata目錄下
  • 通常,路徑類似于C:\Program Files\tesseract\tessdata(Windows)
  • 或 /usr/share/tesseract-ocr/4.00/tessdata(Linux)。

2、在python中使用

安裝依賴

pip install pytesseract

3、本地圖片識別

import pytesseract
from PIL import Image

# 獲取文件的絕對路徑
def get_abspath(filename):
    try:
        current_dir = os.getcwd()
        filename = os.path.normpath(os.path.join(current_dir, filename))
        # print(f"get_abspath文件路徑:{filename}")
        return filename
    except Exception as e:
        print(f"獲取文件絕對路徑時出現(xiàn)錯誤: {e}")
        return ""
        
# 手動指定路徑(Windows常見) Tesseract 系統(tǒng)路徑
driver_path = r"Tesseract-OCR\\tesseract.exe"
pytesseract.pytesseract.tesseract_cmd = get_abspath(driver_path)

#使用示例
if __name__ == "__main__":
  # 1 識別本地圖片 
  # 英文識別
  current_dir = os.getcwd()
    filename = os.path.normpath(os.path.join(current_dir, f"code.jpg"))
    file = Image.open(filename)
    text = pytesseract.image_to_string(file, lang="eng")
    print(text)
  #中文識別,需要下載語言包
    filename = os.path.normpath(os.path.join(current_dir, f"sushi.png"))
    file = Image.open(filename)
    text = pytesseract.image_to_string(file, lang='chi_sim') 
    print(f"識別結(jié)果:{text}")

識別結(jié)果示例:

4、結(jié)合playwright動態(tài)識別網(wǎng)站驗(yàn)證碼

import os
import pytesseract
from PIL import Image
from playwright.sync_api import Playwright
import tools.pwHander as pwHander
from PIL import Image

# 獲取文件的絕對路徑
def get_abspath(filename):
    try:
        current_dir = os.getcwd()
        filename = os.path.normpath(os.path.join(current_dir, filename))
        # print(f"get_abspath文件路徑:{filename}")
        return filename
    except Exception as e:
        print(f"獲取文件絕對路徑時出現(xiàn)錯誤: {e}")
        return ""
        
# 手動指定路徑(Windows常見) Tesseract 系統(tǒng)路徑
driver_path = r"Tesseract-OCR\\tesseract.exe"
pytesseract.pytesseract.tesseract_cmd = get_abspath(driver_path)

# 驗(yàn)證碼圖片識別
def get_captcha(page: Playwright, element_selector="img#captcha", file_name="code.jpg"):
    try:
        current_dir = os.getcwd()
        filename = os.path.normpath(os.path.join(current_dir, f"{file_name}"))
               
        # 通過class選擇器獲取img元素
        code_img = page.locator(element_selector)
        if not code_img:
            raise ValueError("驗(yàn)證碼元素未找到!")

        # 刷新驗(yàn)證碼
        # code_img.click()

        # 下載驗(yàn)證碼圖片
        code_img.screenshot(path=filename)

        file = Image.open(filename)
        text = pytesseract.image_to_string(file, lang="eng")
        print("驗(yàn)證碼識別結(jié)果:", text)
        return text.strip()
    except Exception as e:
        print(f"獲取驗(yàn)證碼 失敗:{str(e)}")
        return ""
#使用示例
if __name__ == "__main__":
  # 2 動態(tài)識別網(wǎng)站驗(yàn)證碼
  with sync_playwright() as p:
   		browser = p.chromium.launch(headless=False, slow_mo=1000)
        context = browser.new_context()
        page = context.new_page()
        page.goto("測試網(wǎng)址")
	    # 驗(yàn)證碼圖片下載
	    imgText = get_captcha(page, "img#jcaptcha")
	    print(f"驗(yàn)證碼:{imgTest}")

總結(jié)

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • python與QT聯(lián)合的詳細(xì)步驟記錄

    python與QT聯(lián)合的詳細(xì)步驟記錄

    這篇文章主要介紹了python與QT聯(lián)合的詳細(xì)步驟,文章還展示了如何在Python中調(diào)用QT的.ui文件來實(shí)現(xiàn)GUI界面,并介紹了多窗口的應(yīng)用,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-12-12
  • 用Python將GIF動圖分解成多張靜態(tài)圖片

    用Python將GIF動圖分解成多張靜態(tài)圖片

    今天給大家?guī)淼氖顷P(guān)于Python的相關(guān)知識,文章圍繞著如何用Python將GIF動圖分解成多張靜態(tài)圖片展開,文中有非常詳細(xì)的介紹,需要的朋友可以參考下
    2021-06-06
  • 使用OpenCV校準(zhǔn)魚眼鏡頭的方法

    使用OpenCV校準(zhǔn)魚眼鏡頭的方法

    這篇文章主要介紹了使用OpenCV校準(zhǔn)魚眼鏡頭的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • 對numpy數(shù)據(jù)寫入文件的方法講解

    對numpy數(shù)據(jù)寫入文件的方法講解

    今天小編就為大家分享一篇對numpy數(shù)據(jù)寫入文件的方法講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • Python實(shí)現(xiàn)遍歷數(shù)據(jù)庫并獲取key的值

    Python實(shí)現(xiàn)遍歷數(shù)據(jù)庫并獲取key的值

    本文給大家分享的是Python實(shí)現(xiàn)遍歷數(shù)據(jù)庫并獲取key的值的方法,主要是使用for循環(huán)來實(shí)現(xiàn),有需要的小伙伴可以參考下。
    2015-05-05
  • pytorch?tensor內(nèi)所有元素相乘實(shí)例

    pytorch?tensor內(nèi)所有元素相乘實(shí)例

    這篇文章主要介紹了pytorch?tensor內(nèi)所有元素相乘實(shí)例,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • Python實(shí)現(xiàn)用手機(jī)監(jiān)控遠(yuǎn)程控制電腦的方法

    Python實(shí)現(xiàn)用手機(jī)監(jiān)控遠(yuǎn)程控制電腦的方法

    這篇文章主要介紹了Python實(shí)現(xiàn)用手機(jī)監(jiān)控遠(yuǎn)程控制電腦的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • python正則匹配查詢辦理進(jìn)度示例分享

    python正則匹配查詢辦理進(jìn)度示例分享

    分享原創(chuàng)的一段查詢通行證辦理進(jìn)度查詢的python 3.3代碼,利用socket請求相關(guān)網(wǎng)站,獲得結(jié)果后利用正則找出辦理進(jìn)度
    2013-12-12
  • 基于Python利用Faker批量測試數(shù)據(jù)

    基于Python利用Faker批量測試數(shù)據(jù)

    這篇文章主要介紹了基于Python利用Faker批量測試數(shù)據(jù)。測試過程中,經(jīng)常需要批量去造數(shù)據(jù),方法有很多,最簡單方便的應(yīng)該是使用python?的一個三方庫Faker。下面我們就來看看三方庫Faker如何批量測試數(shù)據(jù),需要的朋友可以參考一下
    2022-03-03
  • Python下線程之間的共享和釋放示例

    Python下線程之間的共享和釋放示例

    這篇文章主要用示例簡單介紹了Python下線程之間的共享和釋放,線程一直是Python開發(fā)者中的熱點(diǎn)問題,需要的朋友可以參考下
    2015-05-05

最新評論