# 1.3.4 tesserocr的安裝
## 1.相關鏈接 {#2-相關鏈接}
* Tesserocr GitHub:[https://github.com/sirfz/tesserocr](https://github.com/sirfz/tesserocr)
* Tesserocr PyPi:[https://pypi.python.org/pypi/tesserocr](https://pypi.python.org/pypi/tesserocr)
* Tesseract下載地址:[http://digi.bib.uni-mannheim.de/tesseract](http://digi.bib.uni-mannheim.de/tesseract)
* Tesseract GitHub:[https://github.com/tesseract-ocr/tesseract](https://github.com/tesseract-ocr/tesseract)
* Tesseract 語言包:[https://github.com/tesseract-ocr/tessdata](https://github.com/tesseract-ocr/tessdata)
* Tesseract 文檔:[https://github.com/tesseract-ocr/tesseract/wiki/Documentation](https://github.com/tesseract-ocr/tesseract/wiki/Documentation)
* Tesseract wheel:[https://github.com/simonflueckiger/tesserocr-windows\_build/releases](https://github.com/simonflueckiger/tesserocr-windows_build/releases)
## 2.windows下安裝

其中文件名中帶有 dev 的為開發版本,不帶 dev 的為穩定版本,可以選擇下載不帶 dev 的最新版本,例如可以選擇下載 tesseract-ocr-setup-3.05.01.exe。
接下來安裝Tesserocr,直接使用pip 安裝
```text
pip3 install tesserocr pillow
```
如果tesserocr安裝報錯
需要使用whl安裝,并且需要安裝Microsoft Visual C++ 14.0.exe
[下載地址](https://pan.baidu.com/s/1lL3WVCE2T-4zQJbjloP6-w)
```text
首先切換到有whl的目錄
然后通過pip安裝
pip install tesserocr-2.2.2-cp36-cp36m-win_amd64.whl
在這之前需要安裝Microsoft Visual C++ 14.0.exe
```
## 3.Linux下的安裝 {#4-linux下的安裝}
對于 Linux 來說,不同系統已經有了不同的發行包了,它可能叫做 tesseract-ocr 或者 tesseract,直接用對應的命令安裝即可。
### Ubuntu、Debian、Deepin {#ubuntu、debian、deepin}
安裝命令如下:
```text
sudo apt-get install -y tesseract-ocr libtesseract-dev libleptonica-dev
```
### CentOS、RedHat {#centos、redhat}
安裝命令如下:
```text
yum install -y tesseract
```
不同發行版本運行如上命令即可完成 Tesseract 的安裝。
安裝完成之后便可以調用 tesseract 命令了。
我們查看一下其支持的語言:
```text
tesseract --list-langs
```
運行結果示例:
```text
List of available languages (3):
eng
osd
equ
```
結果顯示其只支持幾種語言,如果我們想要安裝多國語言還需要安裝語言包,官方叫做 tessdata。
tessdata 的下載鏈接為:[https://github.com/tesseract-ocr/tessdata](https://github.com/tesseract-ocr/tessdata)。
利用 Git 命令將其下載下來并遷移到相關目錄即可,不同的版本遷移命令如下:
### Ubuntu、Debian、Deepin {#ubuntu、debian、deepin}
```text
git clone https://github.com/tesseract-ocr/tessdata.git
sudo mv tessdata/* /usr/share/tesseract-ocr/tessdata
```
### CentOS、RedHat {#centos、redhat}
```text
git clone https://github.com/tesseract-ocr/tessdata.git
sudo mv tessdata/* /usr/share/tesseract/tessdata
```
這樣就可以將下載下來的語言包全部安裝了。
這時我們重新運行列出所有語言的命令:
```text
tesseract --list-langs
```
結果如下:
```text
List of available languages (107):
afr
amh
ara
asm
aze
aze_cyrl
bel
ben
bod
bos
bul
cat
ceb
ces
chi_sim
chi_tra
...
```
即可發現其列出的語言就多了非常多,比如 chi\_sim 就代表簡體中文,這就證明語言包安裝成功了。
接下來再安裝 Tesserocr 即可,直接使用 Pip 安裝:
```text
pip3 install tesserocr pillow
```
## 4. Mac下的安裝 {#5-mac下的安裝}
Mac 下首先使用 Homebrew 安裝 Imagemagick 和 Tesseract 庫:
```text
brew install imagemagick
brew install tesseract --all-languages
```
接下來再安裝 Tesserocr 即可:
```text
pip3 install tesserocr pillow
```
這樣便完成了 Tesserocr 的安裝。
## 5.驗證安裝
分別測試Tesseract 和 Tesserocr
[測試圖片](https://raw.githubusercontent.com/Python3WebSpider/TestTess/master/image.png):

用Tesseract 命令行測試,命令如下:
```text
tesseract image.png result -l eng && type result.txt
```
運行結果:
```text
Tesseract Open Source OCR Engine v3.05.01 with Leptonica
Python3WebSpider
```
需要注意:
* 需要將Tesseract-OCR目錄配置到環境變量中
* 需要將Tesseract-OCR目錄下的tessdata目錄配置到環境變量中
tesseract 命令參數講解:
第一個參數為圖片名稱,第二個參數 result 為結果保存的目標文件名稱,-l 指定使用的語言包,在此使用 eng 英文,然后再用 type命令將結果輸出。
然后利用python代碼進行測試,需要借助Tesserocr庫,測試代碼如下:
```text
import tesserocr
from PIL import Image
image = Image.open("D:/image.png")
print(tesserocr.image_to_text(image))
```
如果報錯,錯誤方式如下:

需要將Tesseract-OCR目錄下的tessdata目錄拷貝到python36目錄下
這時重新運行就會成功

在這里首先利用 Image 讀取了圖片文件,然后調用了 tesserocr 的 image\_to\_text\(\) 方法,再將將其識別結果輸出。
運行結果:
```text
Python3WebSpider
```
另外我們還可以直接調用 file\_to\_text\(\) 方法,也可以達到同樣的效果:
```text
import tesserocr
print(tesserocr.file_to_text("D:\image.png"))
```
運行結果:
```text
Python3WebSpider
```
如果成功輸出結果,則證明Tesseract和Tesserocr都已經安裝成功
### 6.pytesseract庫
pytesseract庫和tesserocr庫的效果一樣,都可以識別圖片,都是用的Tesseract-OCR來進行識別圖片的,如果安裝不成功就不要糾結tesserocr庫了
```
>>> import pytesseract
>>> from PIL import Image
>>>
>>> image = Image.open('image.png')
>>> code = pytesseract.image_to_string(image)
>>> print(code)
Python3WebSpider
```
- 介紹
- 1.開發環境配置
- 1.1 python3的安裝
- 1.1.1 windows下的安裝
- 1.1.2 Linux下的安裝
- 1.1.3 Mac下的安裝
- 1.2 請求庫的安裝
- 1.2.1 requests的安裝
- 1.2.2 selenium的安裝
- 1.2.3 ChromeDriver的安裝
- 1.2.4 GeckoDriver 的安裝
- 1.2.5 PhantomJS的安裝
- 1.2.6 aiohttp的安裝
- 1.3 解析庫的安裝
- 1.3.1 lxml的安裝
- 1.3.2 Beautiful Soup的安裝
- 1.3.3 pyquery的安裝
- 1.3.4 tesserocr的安裝
- 1.4 數據庫的安裝
- 1.4.1 MySQL的安裝
- 1.4.2 MongoDB的安裝
- 1.4.3 Redis的安裝
- 1.5 存儲庫的安裝
- 1.5.1 PyMySQL的安裝
- 1.5.2 PyMongo的安裝
- 1.5.3 redis-py的安裝
- 1.5.4 RedisDump的安裝
- 1.6 Web庫的安裝
- 1.6.1 Flask的安裝
- 1.6.2 Tornado的安裝
- 1.7 App爬取相關庫的安裝
- 1.7.1 Charles的安裝
- 1.7.2 mitmproxy的安裝
- 1.7.3 Appium的安裝
- 1.8 爬蟲框架的安裝
- 1.8.1 pyspider的安裝
- 1.8.2 Scrapy的安裝
- 1.8.3 Scrapy-Splash的安裝
- 1.8.4 ScrapyRedis的安裝
- 1.9 布署相關庫的安裝
- 1.9.1 Docker的安裝
- 1.9.2 Scrapyd的安裝
- 1.9.3 ScrapydClient的安裝
- 1.9.4 ScrapydAPI的安裝
- 1.9.5 Scrapyrt的安裝
- 1.9.6-Gerapy的安裝
- 2.爬蟲基礎
- 2.1 HTTP 基本原理
- 2.1.1 URI和URL
- 2.1.2 超文本
- 2.1.3 HTTP和HTTPS
- 2.1.4 HTTP請求過程
- 2.1.5 請求
- 2.1.6 響應
- 2.2 網頁基礎
- 2.2.1網頁的組成
- 2.2.2 網頁的結構
- 2.2.3 節點樹及節點間的關系
- 2.2.4 選擇器
- 2.3 爬蟲的基本原理
- 2.3.1 爬蟲概述
- 2.3.2 能抓怎樣的數據
- 2.3.3 javascript渲染的頁面
- 2.4 會話和Cookies
- 2.4.1 靜態網頁和動態網頁
- 2.4.2 無狀態HTTP
- 2.4.3 常見誤區
- 2.5 代理的基本原理
- 2.5.1 基本原理
- 2.5.2 代理的作用
- 2.5.3 爬蟲代理
- 2.5.4 代理分類
- 2.5.5 常見代理設置
- 3.基本庫使用
- 3.1 使用urllib
- 3.1.1 發送請求
- 3.1.2 處理異常
- 3.1.3 解析鏈接
- 3.1.4 分析Robots協議
- 3.2 使用requests
- 3.2.1 基本用法
- 3.2.2 高級用法
- 3.3 正則表達式
- 3.4 抓取貓眼電影排行
- 4.解析庫的使用
- 4.1 使用xpath
- 4.2 使用Beautiful Soup
- 4.3 使用pyquery
- 5.數據存儲
- 5.1 文件存儲
- 5.1.1 TXT 文件存儲
- 5.1.2 JSON文件存儲
- 5.1.3 CSV文件存儲
- 5.2 關系型數據庫存儲
- 5.2.1 MySQL的存儲
- 5.3 非關系數據庫存儲
- 5.3.1 MongoDB存儲
- 5.3.2 Redis存儲
- 6.Ajax數據爬取
- 6.1 什么是Ajax
- 6.2 Ajax分析方法
- 6.3 Ajax結果提取
- 6.4 分析Ajax爬取今日頭條街拍美圖
- 7.動態渲染頁面爬取
- 7.1 Selenium的使用
- 7.2 Splash的使用
- 7.3 Splash負載均衡配置
- 7.4 使用selenium爬取淘寶商品
- 8.驗證碼的識別
- 8.1 圖形驗證碼的識別
- 8.2 極驗滑動驗證碼的識別
- 8.3 點觸驗證碼的識別
- 8.4微博宮格驗證碼的識別
- 9.代理的使用
- 9.1 代理的設置
- 9.2 代理池的維護
- 9.3 付費代理的使用
- 9.4 ADSL撥號代理
- 9.5 使用代理爬取微信公總號文章
- 10.模擬登錄
- 10.1 模擬登陸并爬去GitHub
- 10.2 Cookies池的搭建
- 11.App的爬取
- 11.1 Charles的使用
- 11.2 mitmproxy的使用
- 11.3 mitmdump“得到”App電子書信息
- 11.4 Appium的基本使用
- 11.5 Appnium爬取微信朋友圈
- 11.6 Appium+mitmdump爬取京東商品
- 12.pyspider框架的使用
- 12.1 pyspider框架介紹
- 12.2 pyspider的基本使用
- 12.3 pyspider用法詳解
- 13.Scrapy框架的使用
- 13.1 scrapy框架介紹
- 13.2 入門
- 13.3 selector的用法
- 13.4 spider的用法
- 13.5 Downloader Middleware的用法
- 13.6 Spider Middleware的用法
- 13.7 Item Pipeline的用法
- 13.8 Scrapy對接Selenium
- 13.9 Scrapy對接Splash
- 13.10 Scrapy通用爬蟲
- 13.11 Scrapyrt的使用
- 13.12 Scrapy對接Docker
- 13.13 Scrapy爬取新浪微博
- 14.分布式爬蟲
- 14.1 分布式爬蟲原理
- 14.2 Scrapy-Redis源碼解析
- 14.3 Scrapy分布式實現
- 14.4 Bloom Filter的對接
- 15.分布式爬蟲的部署
- 15.1 Scrapyd分布式部署
- 15.2 Scrapyd-Client的使用
- 15.3 Scrapyd對接Docker
- 15.4 Scrapyd批量部署
- 15.5 Gerapy分布式管理
- 微信公總號文章實戰
- 源碼
- other