您好,登錄后才能下訂單哦!
本篇內容介紹了“Python爬蟲遇到驗證碼怎么解決”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
一 前言
中國知網的注冊頁面使用的是這種驗證碼,頁面如下:
二 準備工作
1 目標
以知網的驗證碼為例,利用OCR(Optical Character Recognition 光學字符識別)技術識別圖形驗證碼。
2 安裝tesseract
2.2 下載tesseract-ocr-setup-3.05.01.exe
2.3 安裝注意事項
勾選Additional language data(download)選項,這樣可以識別多國語言。
3 安裝tesserocr
pip install tesserocr pillow
安裝好的Tesseract-OCR后,從D:\Program Files (x86)\Tesseract-OCR目錄下,將tessdata文件夾拷貝到下面目錄
E:\WebSpider\venv\Scripts
4 獲取驗證碼
將驗證碼圖形 保存到本地,命名為code.jpg
三 實戰
1 實戰
1.1 代碼
import tesserocr from PIL import Image image = Image.open('code.jpg') result = tesserocr.image_to_text(image) print(result) image = Image.open('code1.jpg') result = tesserocr.image_to_text(image) print(result) image = Image.open('code2.jpg') result = tesserocr.image_to_text(image) print(result)
1.2 效果
E:\WebSpider\venv\Scripts\python.exe E:/WebSpider/8_1.py DTKD JR42 PFRT
1.3 說明
code.jpg是DTKT
code1.jpg是JR42
code2.jpg是PFRT
將結果和實際圖片進行比較,正確率還是比較高的。
2 實戰2
2.1 代碼
import tesserocr print(tesserocr.file_to_text('code.jpg')) print(tesserocr.file_to_text('code1.jpg')) print(tesserocr.file_to_text('code2.jpg'))
2.2 效果
E:\WebSpider\venv\Scripts\python.exe E:/WebSpider/8_1.py DTKD .ll?42 FFKT
2.3 說明
code.jpg是DTKT
code1.jpg是JR42
code2.jpg是PFRT
將結果和實際圖片進行比較,正確率并不是很高。
3 實戰3
3.1 代碼
import tesserocr from PIL import Image image = Image.open('code2.jpg') image = image.convert('L') threshold = 127 table = [] for i in range(256): if i < threshold: table.append(0) else: table.append(1) image = image.point(table, '1') image.show() result = tesserocr.image_to_text(image) print(result)
3.2 效果
E:\WebSpider\venv\Scripts\python.exe E:/WebSpider/8_1.py PFRT
“Python爬蟲遇到驗證碼怎么解決”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。