久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

python使用之識別驗證碼及相關問題

 路人甲Java 2021-06-21

在使用Python做自動化時候遇到登錄需要識別驗證碼問題,此時采用pytesseract模塊,,遇到異常:

pytesseract.pytesseract.TesseractNotFoundError: tesseract is not installed or it's not in your PATH. See README file for more information.

 解決方式:

1、下載對應版本的“Tesseract-OCR”,,下載地址:https://github.com/tesseract-ocr/tesseract/wiki    或者    https://github.com/UB-Mannheim/tesseract/wiki

     下載文件名稱:tesseract-ocr-w64-setup-v5.0.0-alpha.20201127.exe

2,、安裝Tesseract-OCR,請記住安裝路徑,。

3,、配置環(huán)境變量:

  (1)配置Tesseract-OCR環(huán)境變量:

    將Tesseract-OCR的安裝路徑配置在環(huán)境變量Path中,。D:\Program Files\python38\Lib\site-packages\Tesseract-OCR ,。如下圖:

    

 

 

   (2)配置tessdata環(huán)境變量:

    新增一個變量名:TESSDATA_PREFIX,。變量值為安裝的Tesseract-OCR路徑下的tessdata的路徑,。即,在Tesseract-OCR的安裝路徑后追加tessdata,。D:\Program Files\python38\Lib\site-packages\Tesseract-OCR\tessdata,。如下圖

    

 

 4、然后將pytesseract.py源碼中

tesseract_cmd = 'tesseract'

 修改為:

tesseract_cmd = r'D:\Program Files\python38\Lib\site-packages\Tesseract-OCR\tesseract.exe'

 重新運行腳本,,OK

 

 

如下圖所示的登錄頁面,。

 

 附帶識別驗證碼代碼:

from selenium import webdriver
from PIL import Image
import pytesseract

def readvcode():
    dr = webdriver.Chrome("D:\softwarePro\BrowserDriver\chromedriver.exe")
    dr.maximize_window()
    dr.get(url)
    dr.save_screenshot('All.png')  # 截取當前網(wǎng)頁,,該網(wǎng)頁有我們需要的驗證碼
    imgelement = dr.find_element_by_class_name('imgcode')
    location = imgelement.location  # 獲取驗證碼x,y軸坐標
    size = imgelement.size  # 獲取驗證碼的長寬
    rangle = (int(location['x']), int(location['y']), int(location['x'] + size['width']),
                  int(location['y'] + size['height']))  # 寫成我們需要截取的位置坐標
    i = Image.open("All.png")  # 打開截圖
    result = i.crop(rangle)  # 使用Image的crop函數(shù),,從截圖中再次截取我們需要的區(qū)域
    result.save('result.png')
    text = pytesseract.image_to_string('result.png', 'eng').strip()

    dr.find_element_by_name("username").send_keys("admin")
    dr.find_element_by_name("password").send_keys("admin123")
    dr.find_element_by_name("validateCode").send_keys(text)
    dr.find_element_by_id("btnSubmit").click()

if __name__ == '__main__':
    readvcode()

 

帶有噪點或者劃線類的驗證碼以后更新。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導購買等信息,,謹防詐騙,。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報,。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多