Skip to main content

moregeek program

python爬虫-31-python图形验证码进阶,识别中文(二)_12376780的博客-多极客编程

python爬虫-31-python图形验证码进阶,识别中文(二)_运维

有些验证码是中文的,使用的时候可能发现了,并不能支持识别中文,那么我们应该如何解决呢?

1、python识别图片中的中文字符-old

先来看下默认的情况下识别中文是什么样子的呢,比如我们要识别下图:

python爬虫-31-python图形验证码进阶,识别中文(二)_运维_02

然后我们写出如下代码:

import pytesseract
from PIL import Image

pytesseract.pytesseract.tesseract_cmd = r"C:\Program Files (x86)\Tesseract-OCR\tesseract.exe"
image = Image.open(r"C:\Users\22768\Desktop\gzh\chinese_0.jpg")
text = pytesseract.image_to_string(image, lang='eng+osd')
print(text)

运行结果:

ffi’:

赖荤

可以看到并没有识别出来,是乱码;

2、安装tesseract新版本+tesseract语言包

​python​​​通过​​tesseract​​识别图形中文乱码,是因为你安装的时候没有选择合适的语言进行安装,上一文中我们是直接默认下一步安装的,且安装版本是​​tesseract-ocr-setup-3.02.02.exe​​​,这个版本在安装的时候确实可以选择其他语言进行支持,但是你​​只能选择​​​,并​​没办法进行下载​​​。且官网也没有对应该版本的语言支持包,所以我这里重新找了一个**​​5.1.0​​**版本的程序包进行安装,这个软件包是没有问题的;

获取​​tesseract​​软件包的方式为:

微信公众号“运维家”,后台回复:​​resseract​​软件包

即可获取​​tesseract​​软件包的网盘下载地址了;

​tesseract​​​这个软件安装的过程中,​​windows​​安装路径必须选择:

C:\Program Files (x86)\Tesseract-OCR

如果是​​windows​​务必选择以上路径进行安装哈;

我们可以选择语言,点击​​Additional language data(download)​​前面的符号,就会展示出来很多语言,如果识别的内容比较复杂,建议全选,将所有的语言包都下载下来,我这里为了演示,只选择了和中文有关的,也就是抬头是“Chinese”的;

python爬虫-31-python图形验证码进阶,识别中文(二)_linux系统_03

然后点击下一步即可,这里我们会看到下图的安装界面,可能会比较慢,因为他会一个个下载语言包,这里我们耐心等待即可;

python爬虫-31-python图形验证码进阶,识别中文(二)_linux_04

出现下面的界面就表示安装成功了;

python爬虫-31-python图形验证码进阶,识别中文(二)_linux系统_05

​tesseract​​​软件无法下载语言包,或者​​tesseract​​下载语言包失败,如果有这种问题,是因为啥呢?那简单了,就是因为他的语言包在国外,网络不稳定所导致的,那么我们如何解决呢,我这里准备了一份完整的语言包,直接解压覆盖你​​resseract​​​安装路径中的​​tessdata​​这个文件夹即可。

获取​​tesseract 5.1.0​​语言包的方式为:

微信公众号“运维家”,后台回复:​​tesseract​​语言包

即可获取​​tesseract​​语言包的网盘下载地址了;

然后我们需要将​​C:\Program Files (x86)\Tesseract-OCR\tessdata​​​这个路径下的内容全部拷贝到​​C:\Program Files (x86)\Tesseract-OCR​​目录下方可,不然会报错以下信息:

pytesseract.pytesseract.TesseractError: (1, 'Error opening data file C:\\Program Files (x86)\\Tesseract-OCR\\eng.traineddata Please make sure the TESSDATA_PREFIX environment variable is set to your "tessdata" directory. Failed loading language \'eng\' Tesseract couldn\'t load any languages! Could not initialize tesseract.')

3、再次使用tesseract进行中文识别

先来看下他现在支持多少种语言了吧;

import pytesseract
pytesseract.pytesseract.tesseract_cmd = r"C:\Program Files (x86)\Tesseract-OCR\tesseract.exe"
print(pytesseract.get_languages())

运行结果如下:

['chi_sim', 'chi_sim_vert', 'chi_tra', 'chi_tra_vert', 'eng', 'osd']

当使用我上面提供的语言包之后,就会发现支持的语言变成了下面这么多:

['afr', 'amh', 'ara', 'asm', 'aze', 'aze_cyrl', 'bel', 'ben', 'bod', 'bos', 'bre', 'bul', 'cat', 'ceb', 'ces', 'chi_sim', 'chi_sim_vert', 'chi_tra', 'chi_tra_vert', 'chr', 'cos', 'cym', 'dan', 'deu', 'div', 'dzo', 'ell', 'eng', 'enm', 'epo', 'equ', 'est', 'eus', 'fao', 'fas', 'fil', 'fin', 'fra', 'frk', 'frm', 'fry', 'gla', 'gle', 'glg', 'grc', 'guj', 'hat', 'heb', 'hin', 'hrv', 'hun', 'hye', 'iku', 'ind', 'isl', 'ita', 'ita_old', 'jav', 'jpn', 'jpn_vert', 'kan', 'kat', 'kat_old', 'kaz', 'khm', 'kir', 'kmr', 'kor', 'lao', 'lat', 'lav', 'lit', 'ltz', 'mal', 'mar', 'mkd', 'mlt', 'mon', 'mri', 'msa', 'mya', 'nep', 'nld', 'nor', 'oci', 'ori', 'osd', 'pan', 'pol', 'por', 'pus', 'que', 'ron', 'rus', 'san', 'sin', 'slk', 'slv', 'snd', 'spa', 'spa_old', 'sqi', 'srp', 'srp_latn', 'sun', 'swa', 'swe', 'syr', 'tam', 'tat', 'tel', 'tgk', 'tha', 'tir', 'ton', 'tur', 'uig', 'ukr', 'urd', 'uzb', 'uzb_cyrl', 'vie', 'yid', 'yor']

这个时候我们再次来识别文章最开始的时候的图片,来看看是否识别出来了吧。

import pytesseract
from PIL import Image

pytesseract.pytesseract.tesseract_cmd = r"C:\Program Files (x86)\Tesseract-OCR\tesseract.exe"
image = Image.open(r"C:\Users\22768\Desktop\gzh\1654881934269.jpg")
text = pytesseract.image_to_string(image, lang='chi_sim+chi_sim_vert+chi_tra+chi_tra_vert')
print(text)

运行结果如下:

运维家

那么我们再来识别一张字比较多的图片再试试呢,例如:

运行代码

import pytesseract
from PIL import Image

pytesseract.pytesseract.tesseract_cmd = r"C:\Program Files (x86)\Tesseract-OCR\tesseract.exe"
image = Image.open(r"C:\Users\22768\Desktop\gzh\1654882172968.jpg")
text = pytesseract.image_to_string(image, lang='chi_sim+chi_sim_vert+chi_tra+chi_tra_vert')
print(text)

结果:

钟山风雨起苔划,百万雄师过大江。
虎跟龙盘今胜苦,天翻地覆慨而慷。
二将剩筋追穷坪,不可沽名学等王。
天吞有情天订老,人间正道是沧对 。

不可避免有一些错字,但是已经很少了。

至此,本文结束。相关内容每日更新。

更多内容请转至VX公众号 “运维家” ,获取最新文章。


------ “运维家”  ------

------ “运维家”  ------

------ “运维家”  ------


linux系统下,mknodlinux,linux目录写权限,大白菜能安装linux吗,linux系统创建文件的方法,领克linux系统怎么装软件,linux文本定位;

ocr识别linux,linux锚定词尾,linux系统使用记录,u盘有linux镜像文件,应届生不会Linux,linux内核64位,linux自启动管理服务;

linux计算文件夹大小,linux设备名称有哪些,linux能用的虚拟机吗,linux系统进入不了命令行,如何创建kalilinux,linux跟so文件一样吗。

©著作权归作者所有:来自51CTO博客作者公号运维家的原创作品,请联系作者获取转载授权,否则将追究法律责任
python爬虫-31-python图形验证码进阶,识别中文(二)
https://blog.51cto.com/u_12386780/5398675

python爬虫-32-python字体反爬,网页看到的和实际下载的不一致(理论)_12376780的博客-多极客编程

开发者自己创建的一种字体,但是恰恰是由于是自己创造的,所以我们查看网页源代码的时候发现是乱码,因为我们系统识别不到。但是又因为是前端展示,如果将常见的几千个中文重新全部创建一遍,那么每次访问该网站都需要下载十几兆的内容,所以往往只是对于数字,或者一些敏感的字进行重造。1、描述当我们爬取网站过多的时候,是不是会发现一种情况,就是说明明在网页看到了实际的数据,但是当你使用​​python​​爬虫爬取下

###数据库的高可用配置(mysql)_乌特拉的博客-多极客编程

一、环境配置:  1、操作系统版本:CentOS7  2、MySQL版本:5.7.28  3、VIP(虚IP):10.0.0.140  4、机器列表及功能:IPhostnameserver_id角色及功能10.0.0.158s142142Monitor Host(监控复制组)/ Master(响应写请求)10.0.0.159s143143Candidate Master(响应读请求)10.0.0.

tcpdump抓包工具使用手册_键客李大白的博客-多极客编程

👨🏻‍🎓博主介绍:大家好!我是李大白,一名运维容器运维工程师,热爱分享知识🌟 🌈擅长领域:云原生、数据库、自动化运维🙏🏻如果本文章对小伙伴们有帮助的话,🍭关注+👍🏻点赞+🗣评论+📦收藏!🤝如果在文章描述时如有错,恳请各位大佬指正,在此感谢!!!🍂 落叶而知秋,博闻而强识!📕  精品专栏:​​Harbor进阶实战(企业级)​​协议分析器概述协议分析器是捕获网络数据包进行协议分析的工具。常用的协议分析

linux之我常用的20条命令( 之三)_12204037的博客-多极客编程

快速清空一个文件 > > rumenz.log > :> rumenz.log > true > rumenz.log > cat /dev/null > rumenz.log > echo -n "" > rumenz.log > echo > rumenz.log > truncate -s 0 rumenz.log

服务治理的工作内容_枫叶飘飘的博客-多极客编程

服务治理的实际工作包括两部分:一站式的服务治理平台、普适性的服务开发框架。其中一站式的服务治理平台作为服务治理输出的根据地,最重要的作用是服务治理规范的固化。服务治理规范从经验到wiki、从wiki到平台的发展趋势也表明了服务治理规范是业务方和服务治理团队之间一个非常重要的桥梁。普适性的服务开发框架,是服务治理团队非常重要的一个抓手,平台能做的事情是有限的,而广泛使用的开发框架则可以完成更多的事情

kube-prometheus grafana安装插件和grafana-image-renderer_清风明月的博客-多极客编程

​1、修改grafana-config文件Go[root@k8s-master manifests]# cat grafana-config.yaml apiVersion: v1kind: Secretmetadata: labels: app.kubernetes.io/component: grafana app.kubernetes.io/name: grafana app.kuberne

python爬虫-32-python字体反爬,网页看到的和实际下载的不一致(理论)_12376780的博客-多极客编程

开发者自己创建的一种字体,但是恰恰是由于是自己创造的,所以我们查看网页源代码的时候发现是乱码,因为我们系统识别不到。但是又因为是前端展示,如果将常见的几千个中文重新全部创建一遍,那么每次访问该网站都需要下载十几兆的内容,所以往往只是对于数字,或者一些敏感的字进行重造。1、描述当我们爬取网站过多的时候,是不是会发现一种情况,就是说明明在网页看到了实际的数据,但是当你使用​​python​​爬虫爬取下

###数据库的高可用配置(mysql)_乌特拉的博客-多极客编程

一、环境配置:  1、操作系统版本:CentOS7  2、MySQL版本:5.7.28  3、VIP(虚IP):10.0.0.140  4、机器列表及功能:IPhostnameserver_id角色及功能10.0.0.158s142142Monitor Host(监控复制组)/ Master(响应写请求)10.0.0.159s143143Candidate Master(响应读请求)10.0.0.

tcpdump抓包工具使用手册_键客李大白的博客-多极客编程

👨🏻‍🎓博主介绍:大家好!我是李大白,一名运维容器运维工程师,热爱分享知识🌟 🌈擅长领域:云原生、数据库、自动化运维🙏🏻如果本文章对小伙伴们有帮助的话,🍭关注+👍🏻点赞+🗣评论+📦收藏!🤝如果在文章描述时如有错,恳请各位大佬指正,在此感谢!!!🍂 落叶而知秋,博闻而强识!📕  精品专栏:​​Harbor进阶实战(企业级)​​协议分析器概述协议分析器是捕获网络数据包进行协议分析的工具。常用的协议分析

linux之我常用的20条命令( 之三)_12204037的博客-多极客编程

快速清空一个文件 > > rumenz.log > :> rumenz.log > true > rumenz.log > cat /dev/null > rumenz.log > echo -n "" > rumenz.log > echo > rumenz.log > truncate -s 0 rumenz.log

服务治理的工作内容_枫叶飘飘的博客-多极客编程

服务治理的实际工作包括两部分:一站式的服务治理平台、普适性的服务开发框架。其中一站式的服务治理平台作为服务治理输出的根据地,最重要的作用是服务治理规范的固化。服务治理规范从经验到wiki、从wiki到平台的发展趋势也表明了服务治理规范是业务方和服务治理团队之间一个非常重要的桥梁。普适性的服务开发框架,是服务治理团队非常重要的一个抓手,平台能做的事情是有限的,而广泛使用的开发框架则可以完成更多的事情

sccm基于已安装的 app创建客户端集合并定期推送应用更新_个人博客blog.itpro.cc的博客-多极客编程

背景 在没有购买第三方APP 的前提下,SCCM 管理员经常会需要将一些 APP 进行定向推送或者将其放在软件中心由用户自助安装。但后续需要保持这些软件出于定期更新、维护的状态,确保APP能正常使用。 思路 基于上述的需求背景,实现的方式有很多种。这里我先介绍一种比较简单、便捷的方法。其步骤如下: 创建一个动态计算机集合,其组成成员为已安装指定APP(以企业微信为例) 的计算机; 再创建一个强制软