1. Tesseract安装与简介
- 阻碍我们请求数据的有时候是图形验证码,这就引进了OCR(光学⽂字识别(Optical Character Recognition))技术。开源的库和文献不是很多,其中一个是Tesseract.
- Tesseract是一个将图形转译为文字的OCR工具,目前由谷歌赞助,目前是最准确的开源的OCR库,通过训练可以识别任何字体。
- 安装方法:pip install pytesseract
- 添加环境变量:TESSDATA_PREFIX=D:\Tesseract-OCR\tessdata
- 查看是否安装成功:tesseract --version
- 在命令行中使用:tesseract图片路径 文字路径,需要下载语言安装包。
2. 在代码中使用Tesseract识别图像
import pytesseract
from PIL import Image
pytesseract.pytesseract.tesseract_cmd = r'D:\Tesseract-OCR\tesseract.exe'
tesseract_dir_config = r'--tessdata-dir "D:\Tesseract-OCR\tessdata"'
image = Image.open('demo.png')
print(pytesseract.image_to_string(image,lang='eng', config=tessdata_dir_config))
3. 用pytesseract处理图形验证码
4. 打码云平台
import json
import requests
import base64
from io import BytesIO
from PIL import Image
from sys import version_info
def base64_api(uname, pwd, img):
img = img.convert('RGB')
buffered = BytesIO()
img.save(buffered, format='JPEG')
if version_info.major >= 3:
b64=str(base64.b64encode(buffered.getvalue()), encoding='utf-8')
else:
b64=str(base64.b64encode(buffered.getvalue()))
data = {"username": uname, "password": pwd, "image": b64}
result = json.loads(requests.post("http://api.ttshitu.com/base64", json=data).text)
if result["success"]:
return result["data"]["result"]
else:
return result["message"]
return ""
if __name__ = "__main__":
img_path = "captcha.png"
img = Image.open(img_path)
result = base64_api(uname = '', pwd = '', img = img)
print(result)