本篇是關於驗證碼識別問題,也是Python爬蟲筆記的一個結尾,使用 Tesseract
Python爬蟲教程-29-驗證碼識別-Tesseract-OCR
- 常見反爬蟲手段:
- 驗證碼
- 1.簡單圖片,扭曲數字驗證碼
- 2.中文順序點選
- 3.動態驗證碼
- 4.滑動驗證:滑動小方塊到缺口
- 5.語音驗證
- 6.極驗驗證:官網:http://www.geetest.com/
根據滑鼠軌跡,判定是機器人還是使用者,很強大的驗證機制
- 驗證碼
- 對於極驗是很厲害的攔截機器人手段,好像是使用人工智慧機器學習,當然自己想做驗證的話建議使用。對於驗證有反爬蟲,就有可能有反反爬蟲
爬蟲-驗證碼識別
- 通用方法:
- 1.下載網頁和驗證碼,或截圖
- 2.然後手動輸入驗證碼
- 對於簡單圖片
- 1.使用影象識別軟體或者文字識別軟體
- 2.可以使用第三方影象驗證碼破解網站
- 比如:超級鷹:http://www.chaojiying.com/
- 對於極驗,官網:http://www.geetest.com/
- 可以模擬滑鼠移動,具體的方法我還不清楚
通用方法案例
- 能力有限,這裡就介紹通用方法,先下載得到驗證圖片,然後手動輸入
- Tesseract
- 機器視覺領域的基礎軟體
- OCR:OpticalChracterRecognition,光學文字識別
- Tesseract:是一個 OCR 庫,由 Google 贊助
Tesseract-Windows的安裝
- Tesseract Windows安裝包下載:https://digi.bib.uni-mannheim.de/tesseract/
- 上面連結看著頭疼就下我的網盤裡的:
- 安裝的話就預設安裝就好,如果選中那個線上安裝包,會很慢,耐心等下
- 路徑最好不要更改,除非熟練掌握環境變數
Tesseract-macOS的安裝
- 我也沒有 MacBook,老師順口一說,記下了
- brew install tesseract
Tesseract-Linux的安裝
- 我這裡是 Ubuntu 18 其他 Linux 版本不確定,進入管理員使用者
- apt-get install tesseract-ocr
python使用tesseract的工具 pytesseract 的安裝
- 如果使用的是 Anaconda 環境:
進入當前環境:(我的環境名為learn,如果只有一個base環境,忽略此步)
activate learn
安裝 pytesseract
pip install pytesseract
- 操作截圖
- 首先說一下,conda 是沒有這個包的,也就不能使用 conda install,也不能直接在 Pycharm 裡找到,只有使用 pip 安裝,然後需要注意的就是,要使用你在 Pycharm 使用的那個環境進行安裝
識別驗證碼案例
- 注意:此程式碼路徑是,在圖片和程式碼在同一目錄
- 圖片截圖:
- 程式碼 py30pytess.py 檔案:
import pytesseract as pt
from PIL import Image
# 生成圖片例項
image = Image.open('timg.jpg')
# 呼叫 pytesseract 識別圖片文字
text = pt.image_to_string(image)
print(text)
執行結果
- 這裡是錯了一個字元,因為需要用很多資料去訓練,才能得到更高的準確率
- 如果想看訓練的部分,點選:Tesseract-OCR-02-使用 jTessBoxEditor 提高文字識別準確率
更多文章連結:Python 爬蟲隨筆
- 本筆記不允許任何個人和組織轉載