1. 前言
转自:
https://bbs.125.la/thread-14559245-1-1.html
这里主要是备份下,万一以后想起来要搞这东西呢?
2. 备份
服务端:
# -*- coding: utf-8 -*-
# home.php?mod=space&uid=116177 : 2020/4/15 11:24
# @Author : hlikex
from flask import Flask, request, jsonify
import ctypes
import sys
import os
import time
os.environ['GLOG_minloglevel'] = '4'
ocr = ctypes.windll.LoadLibrary('ocr.dll')
ocr.init()
crack_func = ocr.ocr
app = Flask(__name__)
@app.route('/', methods=['POST'])
def crack():
res = request.json
img = bytes(res["image"])
st = time.time()
img_len = len(img)
ret = str(ctypes.string_at(crack_func(img, img_len)), encoding='utf-8')
return jsonify({'code': ret, 'get_time': time.time() - st})
if __name__ == '__main__':
if len(sys.argv) == 2:
app.run('0.0.0.0', int(sys.argv[1]))
else:
app.run('0.0.0.0', 8082)
客户端:
# -*- coding: utf-8 -*-
# @Time : 2020/4/15 11:24
# @Author : hlikex
# @File : post.py
import requests
def run():
img = open("E:\\Development\\Python\\ocrapi\\aaen.jpg","rb").read()
res = {"image": list(img) }
r = requests.post("http://127.0.0.1:8082/", json=res)
print(res)
print(r.text)
if __name__ == '__main__':
run()
说明:
1、客户端是通过http访问的,所以,理论是也可使用其他语言来访问;
2、仅运行在32位Python中,因为ocr.dll它们是使用语言训练而成的,而易语言是32位的..
3、这里提供一个ocr.dll下载:https://misiai.lanzous.com/ibnf35c
4、关于ocr.dll验证码识别效果,只能说还行,毕竟各个网站验证码都不尽相同,但常见的4位应该问题不大;