python填坑之路:tesserocr配置

本文分享了使用tesserocr库进行光学字符识别(OCR)的实践经验,包括安装配置、环境变量设置及whl文件安装技巧。并提供了一段爬取学校教务系统数据时用于验证码识别的Python代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    最近在学爬虫,在模拟登录网站的时候常常需要输入验证码,最常见的就是OCR(Optical Character Recognition,光学字符识别) ,于是乎了解到tesserocr这个库,但是安装的过程可谓坎坷。

    大致的过程可参考博客:崔庆才的个人博客,但是最好注意以下几点

  1. 将tesseract(注意不是tesserocr)的安装路径加入环境变量。
  2. 将tesseract安装目录下的tessdata文件夹复制到你python的安装路径中去。如下

    3. 如果pip3 install tesserocr pillow失败,考虑使用下载whl文件安装,可参考我之前的一篇博文whl文件版本选择。

whl文件下载地址:https://github.com/simonflueckiger/tesserocr-windows_build/releases

 

下面给出一个实例,我在爬取学校教务系统数据用到的,这个系统我后面有空会详细展开,下面仅给出用于ocr部分的代码:

import requests
import os
import tesserocr
from PIL import Image
import re
from requests.exceptions import RequestException
headers ={
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36'
}

def download_image(url):
    print('当前正在下载验证码图片',url)
    try:
        response = requests.get(url,headers=headers)
        if response.status_code == 200:
            save_image(response.content)
        return None
    except RequestException:
        print('下载验证码图片出错',url)
        return None

def save_image(content):
    file_path = 'code.jpg'
    if os.path.exists(file_path):
        os.remove(file_path)
    with open(file_path,"wb") as f:
        f.write(content)
        f.close()

def get_ocr():
    download_image("http://csujwc.its.csu.edu.cn/verifycode.servlet")
    image = Image.open("code.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')
    result = tesserocr.image_to_text(image)
    result = re.sub('\s','',result)
    result = result.lower()
    if len(result)>4:
        result = result[0:4]
    print("result:"+result)
    return result

if __name__ =="__main__":
    get_ocr()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

月小水长

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值