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 中文识别

相关文章
|
3天前
|
数据采集 存储 XML
构建高效的Python爬虫系统
【9月更文挑战第30天】在数据驱动的时代,掌握如何快速高效地获取网络信息变得至关重要。本文将引导读者了解如何构建一个高效的Python爬虫系统,从基础概念出发,逐步深入到高级技巧和最佳实践。我们将探索如何使用Python的强大库如BeautifulSoup和Scrapy,以及如何应对反爬措施和提升爬取效率的策略。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的知识和技能,帮助你在信息收集的海洋中航行得更远、更深。
15 6
|
1天前
|
数据采集 数据挖掘 数据处理
Python中实现简单爬虫并处理数据
【9月更文挑战第31天】本文将引导读者理解如何通过Python创建一个简单的网络爬虫,并展示如何处理爬取的数据。我们将讨论爬虫的基本原理、使用requests和BeautifulSoup库进行网页抓取的方法,以及如何使用pandas对数据进行清洗和分析。文章旨在为初学者提供一个易于理解的实践指南,帮助他们快速掌握网络数据抓取的基本技能。
12 3
|
5天前
|
数据采集 Python
天天基金数据的Python爬虫
天天基金数据的Python爬虫
20 3
|
5天前
|
数据采集 JSON 数据格式
Python:南京地铁每日客流数据的爬虫实现
Python:南京地铁每日客流数据的爬虫实现
15 1
|
5天前
|
数据采集 Python
Python:某市公交线路站点的爬虫实现
Python:某市公交线路站点的爬虫实现
|
3天前
|
数据采集 Linux 网络安全
python 爬虫遇到的aiohttp证书错误解决办法
python 爬虫遇到的aiohttp证书错误解决办法
16 0
|
5天前
|
Python
Python办公自动化:提取pdf文件中的图片
Python办公自动化:提取pdf文件中的图片
10 0
|
2月前
|
机器学习/深度学习 数据采集 数据可视化
基于爬虫和机器学习的招聘数据分析与可视化系统,python django框架,前端bootstrap,机器学习有八种带有可视化大屏和后台
本文介绍了一个基于Python Django框架和Bootstrap前端技术,集成了机器学习算法和数据可视化的招聘数据分析与可视化系统,该系统通过爬虫技术获取职位信息,并使用多种机器学习模型进行薪资预测、职位匹配和趋势分析,提供了一个直观的可视化大屏和后台管理系统,以优化招聘策略并提升决策质量。
104 4
|
2月前
|
数据采集 存储 搜索推荐
打造个性化网页爬虫:从零开始的Python教程
【8月更文挑战第31天】在数字信息的海洋中,网页爬虫是一艘能够自动搜集网络数据的神奇船只。本文将引导你启航,用Python语言建造属于你自己的网页爬虫。我们将一起探索如何从无到有,一步步构建一个能够抓取、解析并存储网页数据的基础爬虫。文章不仅分享代码,更带你理解背后的逻辑,让你能在遇到问题时自行找到解决方案。无论你是编程新手还是有一定基础的开发者,这篇文章都会为你打开一扇通往数据世界的新窗。
|
3月前
|
数据采集 存储 JSON
从零到一构建网络爬虫帝国:HTTP协议+Python requests库深度解析
【7月更文挑战第31天】在网络数据的海洋中,使用Python的`requests`库构建网络爬虫就像探索未知的航船。HTTP协议指导爬虫与服务器交流,收集信息。HTTP请求包括请求行、头和体,响应则含状态行、头和体。`requests`简化了发送各种HTTP请求的过程。
72 4
下一篇
无影云桌面