python爬虫-31-python图形验证码进阶,识别中文(二)
off999 2024-12-22 20:08 22 浏览 0 评论
有些验证码是中文的,使用的时候可能发现了,并不能支持识别中文,那么我们应该如何解决呢?
1、python识别图片中的中文字符-old
先来看下默认的情况下识别中文是什么样子的呢,比如我们要识别下图:
然后我们写出如下代码:
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)
运行结果:
f?’:
赖荤
蝴
可以看到并没有识别出来,是乱码;
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”的;
然后点击下一步即可,这里我们会看到下图的安装界面,可能会比较慢,因为他会一个个下载语言包,这里我们耐心等待即可;
出现下面的界面就表示安装成功了;
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文件一样吗。
相关推荐
- win快捷键大全(win快捷键大全表)
-
win快捷键:单独按Windows:显示或隐藏“开始”功能表Windows+BREAK:显示“系统属性”对话框Windows+D:显示桌面或恢复桌面Windows+M:最小化所有窗口Windows...
- u盘突然要格式化怎么回事(用着的u盘突然要格式化)
-
U盘提示格式化的原因可能有以下几点:文件系统损坏:U盘的文件系统可能出现损坏,导致无法正常读取和写入数据。病毒感染:U盘可能被病毒感染,病毒会破坏文件系统或隐藏文件。不兼容的文件系统:U盘可能使用了一...
- 路由器pppoe怎么设置(路由器如何设置pppoe上网)
-
移动宽带PPPOE是不用设置的,你只要把帐号和密码填上其他都不选就能上网。但是要注意连接到你电脑的网线是直接经过一个路由器后连接到猫上的,因为我见过有人是这样连接的猫---路由器---路由器---电脑...
- win7桌面图标设置在哪里(win7桌面图标在哪个文件夹)
-
要调出Win7桌面图标,首先需要进入桌面。可以通过点击任务栏上方的“显示桌面”按钮或按下Windows键+D快捷键进入桌面。在桌面上右键单击空白区域,选择“个性化”,然后选择“更改桌面图标”选项。在弹...
- win7手机壁纸(windows7手机桌面主题)
-
1.首先我们打开手机进入到桌面,找到设置图标点击打开。华为手机如何设置自定义锁屏壁纸2.进入到设置界面之后,点击下方的显示选项。华为手机如何设置自定义锁屏壁纸3.然后我们就可以在显示界面中找到壁纸...
- 怎么开启路由器wifi(怎么开启路由器的dhcp功能)
-
把路由器改为开放网络方法如下:1、打开浏览器,在地址栏输入路由器网关IP地址(路由器背后的标签上有,一般是192.168.1.1),输入登录用户名和密码(一般均为admin);2、登录成功后就显示运行...
- win10加载不出来桌面黑屏(window10加载不出来)
-
方法一、如果是遇到了突发性黑屏首先尝试使用Ctrl+Alt+Delete组合键来进行电脑重启一般重启可以解决大部分黑屏故障。win10电脑黑屏按什么键恢复_win10电脑黑屏一键恢复的方法方法...
- 怎么用火绒关闭win安全中心(win10火绒安全软件怎么关闭)
-
一、火绒防火墙关闭方法在电脑上运行火绒软件后,点击首页界面的“防护中心”,在病毒防护界面可以关闭文件、U盘、邮件等保护功能,。系统防护:在该界面可以关闭系统防护功能,。网络防护:可以关闭网络保护等功...
- 微软应用商店下载手机版(微软应用商店在哪下)
-
、在桌面任务栏找到微软应用商店,点击并打开。2、进入页面后点击【应用】,进入应用页面。3、在页面里往下移动,找到热门应用,找到一个软件,点击进入。4、进入页面后,点击【安装】,软件会自动安装,安装完毕...
- win11系统怎么查看电脑配置(win11怎么查看系统版本)
-
答:win11查看电脑配置步骤如下。1.点击下方任务栏的windows图标或者按下键盘“windows键”打开开始菜单。2.在开始菜单中找到“设置”或“settings”,一般是右上角的齿轮状按钮,3...
- 麦克风没坏但是没声音(麦克风没声怎么回事)
-
几种可能性,供您参考:1、麦是完全好的(其它机子上可以用)2、插孔没有插错3、音量控制里的麦克风并没有静音掉4、声卡驱动已重装过N次,新的旧的都试过了5、音量控制→属性→录音→麦克风下面的勾...
- wps office是干什么的(wps office是干什么的可以卸载吗)
-
WPSOffice一站式办公服务平台,具有可兼容Word、Excel、PPT三大办公组件的不同格式,支持PDF文档的编辑与格式转换集成思维导图、流程图等诸多功...
- 百度网页(百度网页自动翻译怎么设置)
-
1、百度的新闻源网站太多了,基本上大型的商业门户+政府官方的媒体、机构部门都是。2、出现在【百度新闻】里的网站都是新闻源网站。3、怎么判断一个网站是不是新闻源:1)在百度新闻下直接搜网站名字,如果出现...
- 外国网站的浏览器下载(外国网站的浏览器下载Games)
-
答,可在浏览器上面下载所需要的视频/音乐的名称,下载完毕后,按所给的排列表找出所需要的视频/音乐。如果是喜欢的视频/音乐它在浏览器里边都有分类,可详细的介绍一下自己吧,还可以在古典音乐或者名著导读介绍...
欢迎 你 发表评论:
- 一周热门
-
-
抖音上好看的小姐姐,Python给你都下载了
-
全网最简单易懂!495页Python漫画教程,高清PDF版免费下载
-
Python 3.14 的 UUIDv6/v7/v8 上新,别再用 uuid4 () 啦!
-
python入门到脱坑 输入与输出—str()函数
-
飞牛NAS部署TVGate Docker项目,实现内网一键转发、代理、jx
-
宝塔面板如何添加免费waf防火墙?(宝塔面板开启https)
-
Python三目运算基础与进阶_python三目运算符判断三个变量
-
(新版)Python 分布式爬虫与 JS 逆向进阶实战吾爱分享
-
慕ke 前端工程师2024「完整」
-
失业程序员复习python笔记——条件与循环
-
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python写入txt (66)
- python读取文件夹下所有文件 (59)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)
