Python处理验证码第一篇(pytesser初探及报错处理)
来源:互联网 发布:windows账户登录不了 编辑:程序博客网 时间:2024/05/19 18:42
首次接触验证码识别,用pytesser接触一下最简单的验证码先,代码参照:使用python以及工具包进行简单的验证码识别。具体细节可以参见原文,里面安装和报错处理没有详细记录,我在此处主要记录一下自己的安装及处理过程。
效果:
可识别以下类型的验证码:正文:
代码:
[code]# encoding=utf-8from PIL import Imagefrom pytesser import *img = Image.open('验证码.jpg')img_grey = img.convert('L')threshold = 140table = []for i in range(256): if i < threshold: table.append(0) else: table.append(1)img_out = img_grey.point(table, '1')text = image_to_string(img_grey) # 将图片转成字符串print text
安装包:
需要安装的包主要有两个: PIL 和 pytesser 。我的环境:64位win8系统、python2.7
PIL模块的安装:
PIL 全称 “Python Imaging Library”。下载地址:传送门
我下载了
运行报错:Python version 2.7 required, which was not found in the registry.
网上找出原因:这个 PIL 安装资源是给32位操作系统,32位和64位操作系统下的python在注册表中的路径是不一样的:
64位检查注册表的位置是: HKLM|HKCU\SOFTWARE\
32位检查注册表的位置是: HKLM|HKCU\SOFTWARE\wow6432node\
所以在64位系统中自然检查不出有Python。
解决方案:
官方没有提供64位的PIL库,但非官方有:传送门。
下载里面的pillow库:
然后在命令行安装该模块:
pip install G:/For_Life/360download/Pillow-3.1.1-cp27-none-win_amd64.whl
注意:在 pillow 下载页中有一行 “Use ‘from PIL import Image’ instead of ‘import Image’” ,所以一般方法安装的 PIL 要导入 Image 模块使用 “import Image” ,而此方法安装的 PIL 要使用 “from PIL import Image” 。
更多请见:Windows安装Python图像处理库:PIL模块。
pytesser模块的安装:
下载地址:传送门。(此网址有时候会加载失败,我将自己下载的放在微盘上了:传送门 密码:DPHE)下载后得到 “pytesser_v0.0.1.zip”,是一个压缩文件,使用方法:
1、在 “D:\For_Software\others\Python_PyDev\Python\Lib\site-packages” 路径下新建一个文件夹,命名 “pytesser” 。把 “pytesser_v0.0.1.zip” 里的文件解压到该目录:
2、将 “pytesser.py” 改名为 “__init__.py”。
3、打开 “__init__.py” 文件,将 “tesseract_exe_name” 变量的值改为 “‘D:/For_Software/others/Python_PyDev/Python/Lib/site-packages/pytesser/tesseract’”(原值为 “‘tesseract’”)。
4、pytesser 模块依赖于 PIL 模块,如果是按照上面的方法安装 PIL 的话,需要把 “init.py” 文件里的 “import Image” 改成 “from PIL import Image” 。
(注意以上的路径要改成自己的路径,不要原搬照抄,应该不会这么笨吧)
如果报错:WindowsError: [Error 2]
可能的原因:python找不到 “tesseract.exe”,执行步骤3给python指定一个绝对路径就可以了。
如果报错:ImportError: No module named Image
可能的原因:在 pytesser 中的 “__init__.py” ,导入 Image 的方式不对,见步骤4。
总结:
其实这只是处理最简单的验证码而已,代码也很简单,主要做两个工作而已。第一个是将彩色图片转成灰度图片并除噪,第二个是使用 pytesser.image_to_string() 将图片中的字符提取出来。处理的图片也是非常有限的图片上的数字或字母必须没有变形(即使是没有变形的情况下还会出现数字跟字母混淆的情况),验证码的背景不能太复杂,允许字体加上一些颜色。
这么简单的验证码估计很少见,不常用。所以这么简单的处理方法,我们看一看也就可以了,如果实际使用的话技术还有待深入。
0 0
- Python处理验证码第一篇(pytesser初探及报错处理)
- Python处理验证码第一篇(pytesser初探及报错处理)
- python中的验证码识别库PyTesser
- python中的验证码识别库PyTesser
- 利用python pytesser 识别简单验证码
- Python识别验证码的模块--- pytesser
- python pytesser 识别图片验证码
- python pytesser tesseract-ocr 验证码识别
- Win7下安装Python图像处理库PIL、pytesser、tesseract进行验证码识别
- Python pip报错处理
- win7 selenium python 验证码识别 pytesser使用 安装Pillow、pytesser、tesseract-ocr
- 报错处理(三)
- python mysql简单操作,报错处理
- @Override 的作用及报错处理
- crontab格式示例及报错处理
- Python验证码识别:利用pytesser识别简单图形验证码
- Python验证码识别:利用pytesser识别简单图形验证码
- VC报错处理(持续更新)
- java中怎么判断一个字符串数组中包含某个字符或字符串
- win7系统升级ie11,在KB2729094更新失败时的解决方法
- B树,B+树,B*树以及R树的介绍
- 杨辉三角 HDU2032
- 业务知识——上诉、抗诉、起诉、自诉的区别
- Python处理验证码第一篇(pytesser初探及报错处理)
- JSP页面上的中文数据传到后台乱码处理汇总
- leetcode:二叉树之Construct Binary Tree from Preorder and Inorder Traversal
- 二维树状数组
- PL/SQL实例 navicat创建存储过程
- 一个关于椭圆曲线密码学的初级读本
- Android绘制间隔平行四边形虚线
- bootstrap table + spring + springmvc + mybatis 实现从前端到后端的表格分页
- 注册开发者账号出现Sorry, you can’t enroll at this time.