快速部署属于自己的 OCR API

2021-08-13 13:07:09 浏览数 (1)

背景

上篇文章我们讲解了验证码识别的最佳解决方案,今天我们把验证码识别的能力,服务化,对外输入一个OCR接口。

  • 将验证码识别服务化

部署属于自己的 OCR API

环境准备

【python>=3.6】

代码语言:javascript复制
pip install ddddocr
代码语言:javascript复制
pip install flask

搭建

  • 用flask搭建一个简单的后台服务
代码语言:javascript复制
from flask import Flask, render_template, request
import ddddocr

app = Flask(__name__)


@app.route('/ocr', methods=['POST'])
def ocr_api():
    ocr = ddddocr.DdddOcr()
    img = request.files.get('image').read()
    r = ocr.classification(img)
    return ''.join(r)

if __name__ == '__main__':
    app.run(host="0.0.0.0", port=8089)
  • 启动服务
代码语言:javascript复制
python ocr_server.py

验证

我们利用requests进行api验证,如下

直接用本地图片请求验证

代码语言:javascript复制
import requests

api_url = "http://127.0.0.1:8089/ocr"

file = open(r'1.png', 'rb').read()

res = requests.post(api_url, files={'image': file})
print(res.text)

获取验证之后,再调用我们的识别api

  • 我们以【北京通】登录页面的验证为例
代码语言:javascript复制
import requests
# 获取验证码图片
headers = {
    "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
     "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4195.1 Safari/537.36"
 }
resp = requests.get('https://bjt.beijing.gov.cn/renzheng/common/generateCaptcha?r=0.15605044411493973', headers=headers, verify=False)
captcha_img = resp.content
# 识别
resp = requests.post(api_url, files={'image': captcha_img})
print('验证码结果', resp.text)
# 保存验证码图片以供验证
with open('captcha.jpg', 'wb') as f:
    f.write(captcha_img)

0 人点赞