Python爬虫:tesseract识别图片验证码

简介: Python爬虫:tesseract识别图片验证码

安装tesseract

mac环境下:


$ brew install tesseract

测试


$ tesseract -v
tesseract 3.05.01

直接使用

$ tesseract test.png output #识别test.png的图片,把结果放到output.txt中

图片

image.png


识别结果


Hello world!
1234

python接口

安装模块


$ pip install pillow
 $ pip install pytesseract

代码实现


# -*- coding: utf-8 -*-
from PIL import Image
import pytesseract
img = Image.open("tesseract_demo.png")
img = img.convert("L")  # 转为黑白图
ret = pytesseract.image_to_string(img)
print(ret)
"""
Hello world!
1234
"""

如果没有识别出内容,使用命令行方式识别,看下报错

如果报错 empty page, 加一些空白就可以


# -*- coding: utf-8 -*-
from PIL import Image
import pytesseract
img = Image.open("tesseract_demo.png")
# 新建一个比原图大一倍左右的白色画布,将原图贴到白色背景图中
image = Image.new("RGB", (300, 200), "white")
image.paste(img, (50, 50))
# 接下来要使用新合成的图
image = image.convert("L")  # 转为黑白图
ret = pytesseract.image_to_string(image)
print(ret)

参考: OCR Tesseract 识别报 empty page解决办法


识别中文

需要下载中文包:

https://pan.baidu.com/s/10dP9ZJMnwX4yOVz6K4jykQ#list/path=%2F

密码 v13f

注意报错的路径,比如mac下:


/usr/local/Cellar/tesseract/3.05.01/share/tessdata/chi_sim.traineddata

把下载的文件chi_sim.traineddata 拷贝到这个目录下即可


import pytesseract
import cv2
def ocr_text(image_name):
    img = cv2.imread(image_name)
    gray = cv2.cvtColor(src=img, code=cv2.COLOR_BGR2GRAY)
    ret, th = cv2.threshold(src=gray.copy(), thresh=236, maxval=255, type=0)
    result = pytesseract.image_to_string(th, lang='chi_sim')
    return result
if __name__ == '__main__':
    image = "out-9-22.png"
    print(ocr_text(image))

识别效果还可以

cv2模块也可以用 PIL 替代


参考


Mac上tesseract-OCR的安装配置

python+pytesseract 中文识别

相关文章
|
2月前
|
数据采集 Web App开发 数据安全/隐私保护
实战:Python爬虫如何模拟登录与维持会话状态
实战:Python爬虫如何模拟登录与维持会话状态
|
3月前
|
数据采集 Web App开发 自然语言处理
新闻热点一目了然:Python爬虫数据可视化
新闻热点一目了然:Python爬虫数据可视化
|
2月前
|
数据采集 监控 数据库
Python异步编程实战:爬虫案例
🌟 蒋星熠Jaxonic,代码为舟的星际旅人。从回调地狱到async/await协程天堂,亲历Python异步编程演进。分享高性能爬虫、数据库异步操作、限流监控等实战经验,助你驾驭并发,在二进制星河中谱写极客诗篇。
Python异步编程实战:爬虫案例
|
3月前
|
数据采集 存储 XML
Python爬虫技术:从基础到实战的完整教程
最后强调: 父母法律法规限制下进行网络抓取活动; 不得侵犯他人版权隐私利益; 同时也要注意个人安全防止泄露敏感信息.
753 19
|
2月前
|
数据采集 存储 JSON
Python爬虫常见陷阱:Ajax动态生成内容的URL去重与数据拼接
Python爬虫常见陷阱:Ajax动态生成内容的URL去重与数据拼接
|
2月前
|
数据采集 存储 JavaScript
解析Python爬虫中的Cookies和Session管理
Cookies与Session是Python爬虫中实现状态保持的核心。Cookies由服务器发送、客户端存储,用于标识用户;Session则通过唯一ID在服务端记录会话信息。二者协同实现登录模拟与数据持久化。
|
3月前
|
数据采集 Web App开发 前端开发
处理动态Token:Python爬虫应对AJAX授权请求的策略
处理动态Token:Python爬虫应对AJAX授权请求的策略
|
3月前
|
数据采集 机器学习/深度学习 人工智能
Python:现代编程的首选语言
Python:现代编程的首选语言
319 102
|
3月前
|
数据采集 机器学习/深度学习 算法框架/工具
Python:现代编程的瑞士军刀
Python:现代编程的瑞士军刀
345 104
|
3月前
|
人工智能 自然语言处理 算法框架/工具
Python:现代编程的首选语言
Python:现代编程的首选语言
276 103

推荐镜像

更多