天天看點

window10下tesserocr的安裝詳解

背景

常見的網站反爬政策中,最常見的有:限制IP通路頻率,識别請求身份資訊,JavaScript動态渲染,以及添加驗證碼。

其中驗證碼的反爬對于爬蟲來說是一個不小的阻礙,小白如我,大多都會一臉蒙蔽。今天主要介紹的是一個能夠幫助我們突破驗證碼反爬的py第三方庫tesserocr。

按着崔大大的書裝第三方庫,着實友善,不過大佬的思維對于小白來說有時候跟不上,是以會導緻我們在安裝的過程中出現一些小BUG,無法究其緣由。希望這篇筆記能對看到的朋友有一些幫助,少走一點彎路,也是友善日後忘記之時能夠順利回憶起安裝過程。

安裝環境

windows10,python3.6.4

介紹

OCR,即Optical Character Recognition,光學字元識别,是指通過掃描字元,然後通過其形狀将其翻譯成電子文本的過程。對于圖形驗證碼來說,它們都是一些不規則的字元,這些字元串确實是由字元稍加扭曲變換得到的内容。

tesserocr 是python的一個OCR識别庫,但其實是對tesserocr做的一層Python API的封裝,是以它的核心是tesseract.是以,在安裝tesserocr之前,我們需要先安裝tesseract。

tesserocr的安裝

https://digi.bib.uni-mannheim.de/tesseract/ tesseract安裝連結

window10下tesserocr的安裝詳解

檔案名中帶有dev的為開發版本,不帶dev的為穩定版本,可以選擇下載下傳不帶dev的版本。我下載下傳的是: tesseract-ocr-setup-3.05.01.exe。有興趣的朋友可以試試dev版本的。發現差別的話,麻煩告訴一下。

下載下傳好的程式如下,輕按兩下安裝。一直next就行。

window10下tesserocr的安裝詳解

這裡不用管直接下一步。

window10下tesserocr的安裝詳解

注意這裡,紅線的地方是選擇安裝OCR識别支援的語言包,全選的話有1.3GB的大小,影響下載下傳速度,正常的學習測試的話,建議不要全選,選擇自己需要的語言包安裝即可。例如: chinese,中文簡體和繁體,以及數學運算。除非是上線的項目必須全選。

window10下tesserocr的安裝詳解
window10下tesserocr的安裝詳解

安裝好tesseract以後,安裝tesserocr, pip3 install tesserocr pillow

意料之中會報錯:

window10下tesserocr的安裝詳解

我們還需要安裝一個tesserocr的whl檔案。

https://github.com/simonflueckiger/tesserocr-windows_build/releases whl檔案下載下傳連結

window10下tesserocr的安裝詳解

好多人用的都是 tesserocr-2.2.2-cp36-cp36m-win_amd64 .whl,我用的是 tesserocr-2.3.1-cp36-cp36m-win_amd64.whl。具體看個人配置,這個whl檔案要對應電腦64位以及python的3.6版本。

将下載下傳好的whl 檔案放入項目檔案夾中,一般我都是直接拖進去的,友善安裝。pip3 install tesserocr-2.3.1-cp36-cp36m-win_amd64.whl。

window10下tesserocr的安裝詳解

如果安裝的版本跟自己的python不相容就會報下面的錯誤,重新下一個相容的版本即可。

window10下tesserocr的安裝詳解

tesseract安裝完成以後開始正式安裝tesserocr了,pip3 install tesserocr pillow

出現如下資訊,表示tesserocr安裝完成了。

window10下tesserocr的安裝詳解

測試OCR驗證碼識别

import tesserocr
from PIL import Image


image = Image.open('demo2/code.jpg')
result = tesserocr.image_to_text(image)
print(result)
           

加入代碼測試,運作代碼。又報錯了:

window10下tesserocr的安裝詳解

具體的意思是沒有找到對應的tesserocr的環境。

有兩種方法解決:

1.配置對應的環境變量,比較麻煩,懶得去試了。

https://blog.csdn.net/u014179267/article/details/80908790 想試試配置環境變量的朋友,可以去看看這篇部落格。

2.報錯的意思是沒有找到對應的檔案夾,是以我們需要給程式一個合理的運作檔案。

将剛剛下載下傳好的tesserocr檔案夾打開,找到tessdata目錄

window10下tesserocr的安裝詳解

複制一份tessdata放入你的python執行環境中去,

window10下tesserocr的安裝詳解

這裡的demo1就是項目的虛拟環境目錄。

試着運作一下代碼,列印出了對應的驗證碼資訊。

window10下tesserocr的安裝詳解

這裡需要注意的是: code.jpg是擷取的驗證碼圖檔檔案,這種驗證碼圖檔找起來也不太麻煩。注意open打開檔案的路徑是否正确。

http://my.cnki.net/elibregister/CheckCode.aspx 一個驗證碼圖檔的連結。

到了這裡,對于突破驗證碼我們已經邁出了一小步了,這是我們的一小步,也是爬蟲的一大步。後會有期了O(∩_∩)O哈哈~

繼續閱讀