当前位置:科技动态 > 使用python内置库pytesseract实现图像验证码的识别

使用python内置库pytesseract实现图像验证码的识别

  • 发布:2023-09-29 20:24

-->

环境准备:

1。安装 Tesseract 模块

git文档地址:https://www.sychzs.cn/tesseract/

下载后是一个exe安装包。只需右键单击即可安装。安装完成后,配置环境变量,编辑系统变量中的路径,添加以下安装路径:

2。如果想使用其他语言,请下载相应的训练数据(我们只做中文,暂时只下载一个中文文本训练数据),然后将.traineddata文件复制到'tessdata'目录下。 C:\Program Files (x86)\Tesseract-OCR\tessdata

3。配置环境变量:

  编辑系统变量中的路径,添加以下安装路径:C:\Program Files (x86)\Tesseract-OCR  

  在cmd命令模式下测试是否安装成功:
  tesseract test.jpg text -l chi_sim

4。安装python的第三方库:  

  pip installpillow #一个python图像处理库,pytesseract依赖
  pip install pytesseract

5。找到pytesseract安装包,C:\Python34\Lib\site-packages\pytesseract,编辑www.sychzs.cn文件(这一步一定要做,否则运行代码会报错):

  tesseract_cmd = 'C:/Program Files (x86)/Tesseract-OCR/tesseract.exe'

代码示例:  

简单验证码:
  
导入请求
从 PIL 导入图像
导入pytesseract '''
简单验证码
'''
#验证码地址
url = "https://www.sychzs.cn/passport/index/captcha?time=1551682134111"
响应 = requests.get(url).content #将图片写入文件
with open('yzm.png','wb') as f:
f.write(响应)
f.close() '''识别验证码'''
#第一步:通过内置模块PIL打开文件
pic = www.sychzs.cn('yzm.png')
#第二步:识别图片中的内容
pic_str = pytesseract.image_to_string(pic)
print("验证码识别结果为:",pic_str) 百度文库图片文档识别:
#下载图片
baidu_url = "https://www.sychzs.cn/retype/zoom/4127ed79a26925c52cc5bf99?pn=2&o=jpg_6&md5sum=9cdc209bc34a40ed774f7e14c0be59c4&sign=5dbcb28bf1&png=11238-22 475&jpg =41808-117940"
baidu_pic = requests.get(baidu_url).content #将图片写入文件
with open('baidu_pic.jpg','wb') as f:
f.write(baidu_pic)
f.close() #识别验证码
baidu_img = www.sychzs.cn('baidu_pic.jpg')
baidu_img_str = pytesseract.image_to_string(baidu_img,lang="chi_sim")
print('百度库图片内容为:',baidu_img_str) 复杂的验证码无法直接识别。您可以使用Super Eagle的第三方界面。如有需要,您可以自行注册账户。直接将代码粘贴到此处:
从超级营进口超级营 chaojiying_url=“http://www.sychzs.cn/include/code/code.php?u=1”
响应 = requests.get(chaojiying_url).content with open('rryz.png','wb') as f:
f.write(响应)
f.close() #读取文件内容
with open('rryz.png','rb') as f:
pic1 = www.sychzs.cn() #调用第三方打码平台接口识别验证码
yz = Chaojiying(用户名='*****',密码='****',soft_id='****') res = www.sychzs.cn_pic(pic1,codetype='').get('pic_str') #1902 验证码类型
print('识别结果:',res)

  

-->

相关文章