python安装报错类型_Python处理验证码第一篇(pytesser初探及报错处理)

前言:

春节期间,无法全身心投入地去写爬虫,那就玩玩验证码吧,应该比较有趣!

首次接触验证码识别,用pytesser接触一下最简单的验证码先,代码参照:使用python以及工具包进行简单的验证码识别。具体细节可以参见原文,里面安装和报错处理没有详细记录,我在此处主要记录一下自己的安装及处理过程。

效果:

可识别以下类型的验证码:

f69a87c64c43344b1b137c8e04aef32f.png 

6f1b45dc8ab9f8ecc8f4d4555c770ffe.png 

fc2e74e1d9109f75e95427063b8cb8b2.png 

52bc3a1b48be5ecb48b419daf47418c7.png

正文:

代码:

# encoding=utf-8

from PIL import Image

from pytesser import *

img = Image.open('验证码.jpg')

img_grey = img.convert('L')

threshold = 140

table = []

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

安装包:

需要安装的包主要有两个: PIL 和 pytesser 。

我的环境:64位win8系统、python2.7

PIL模块的安装:

PIL 全称 “Python Imaging Library”。

下载地址:传送门

我下载了

54d956712c38b7079104dc7fc7b579b5.png

运行报错:Python version 2.7 required, which was not found in the registry.

5753a8d81a4a7a4585dcc76383dad314.png

网上找出原因:这个 PIL 安装资源是给32位操作系统,32位和64位操作系统下的python在注册表中的路径是不一样的:

64位检查注册表的位置是: HKLM|HKCU\SOFTWARE\

32位检查注册表的位置是: HKLM|HKCU\SOFTWARE\wow6432node\

所以在64位系统中自然检查不出有Python。

解决方案:

官方没有提供64位的PIL库,但非官方有:传送门。

下载里面的pillow库:

f63acf3efd11015191d93bd16b68e168.png

然后在命令行安装该模块:

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” 里的文件解压到该目录:

2f795234b4cc12b69bfec44520c46dbf.png

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]

a5f346c83345e1f58d91d7c637fd9107.png 

可能的原因:python找不到 “tesseract.exe”,执行步骤3给python指定一个绝对路径就可以了。

如果报错:ImportError: No module named Image

fe3211c5829964a95f13500f2c63aa41.png 

可能的原因:在 pytesser 中的 “__init__.py” ,导入 Image 的方式不对,见步骤4。

总结:

其实这只是处理最简单的验证码而已,代码也很简单,主要做两个工作而已。第一个是将彩色图片转成灰度图片并除噪,第二个是使用 pytesser.image_to_string() 将图片中的字符提取出来。

处理的图片也是非常有限的图片上的数字或字母必须没有变形(即使是没有变形的情况下还会出现数字跟字母混淆的情况),验证码的背景不能太复杂,允许字体加上一些颜色。

这么简单的验证码估计很少见,不常用。所以这么简单的处理方法,我们看一看也就可以了,如果实际使用的话技术还有待深入。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/431083.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

bin文件怎么转换成文本文档_怎么把pdf文件转换成word文档?这样转很简单

在日常的学习、工作生活中&#xff0c;小伙伴们总少不了要对文件格式进行转换操作&#xff0c;例如把pdf文件转换成word文档。对于职场老手来说&#xff0c;这当然不算一个难度操作&#xff0c;甚至还很简单。但对于职场新人而言&#xff0c;找不对方法&#xff0c;可能操作起来…

delphi if多个条件_Python从入门到精通——一文读懂if语句用法

1、if语句概述if语句能够进行条件测试&#xff0c;并依据一定的条件进行具体的操作2、if语句条件测试if语句的核心是一个值为True或False的表达式&#xff0c;这种表达式称为条件测试。Python根据条件测试的值为True或False来决定是否执行if语句中的代码。2.1 条件测试是否相等…

jquery交换数组元素位置_跟我一起学jQuery——第一集

《锋利的JQuery》第二版阅读笔记-第一章jQuery对象和DOM对象想学习jQuery&#xff0c;首先要学会区分jQuery对象和DOM对象。1)jQuery对象是用jQuery类库的选择器获得的对象。2)DOM对象是用传统(javascript)获得的对象。举个栗子//DOM对象var domO document.getElementById(&qu…

Gitlab的develop角色的人没有权限无法提交的问题解决方案

问题 事情是这样的&#xff0c;最近跟几位同事搞一些东西&#xff0c;打算在Gitlab上建一个仓库&#xff0c;然后协同开发。 我建好仓库&#xff0c;将其他几位同事添加进来&#xff0c;角色分配为Develop。 之后提交初始代码到master分支后&#xff0c;他们用sourceTree拉取代…

macbook不能进系统 备份数据_不基于备份和表,生产系统数据误删就能完全恢复?!...

作者介绍刘宝珍&#xff0c;架构师&#xff0c;目前就职于大型资产管理公司的科技子公司&#xff0c;拥有多年的大型私有云的规划和设计工作经验&#xff0c;熟悉软件的开发流程&#xff0c;目前醉心于研究基于DDD和敏捷的软件的开发模式&#xff0c;对分布式架构有深入的理解&…

arduino代码_arduino智能小车项目——01、配件介绍及代码部分教程

各位小伙伴大家好&#xff1a;本期我们开始制作智能小车项目&#xff0c;这因该是资源包里面难度相对较大的项目。所以我们从易到难把项目进行分解&#xff0c;先从实现较为简单的功能开始。本期我们的目标是实现小车的自主运动&#xff0c;代码部分也相对比较简单&#xff0c;…

python+mysql库+json_用python写爬虫-5.1json用pandas入mysql库

pandas是一个数据处理模块&#xff0c;前面也已经提到了好些&#xff0c;用python写爬虫--4.5pandas存入excel.这次来统一说一说&#xff0c;使用感想。pandas主要是Seriers和Dataframe&#xff0c;Seriers相当于list&#xff0c;dataframe相当于excel表格&#xff0c;有行也有…

pdf温度记录仪开发_蔬菜、鲜果、奶制品冷链温度监控系统监控食品让客户放心...

冷链温度监控系统对于蔬菜鲜果奶制品的冷藏&#xff0c;不仅有助于减慢它们的腐坏速度&#xff0c;保持新鲜&#xff0c;而且对全国物品的运输和合理配置有极大的影响。选择GPS冷链温度监控食品传输过程让客户不再担心质量问题&#xff0c;人们也吃的放心。在多年自主开发GPS物…

python中什么是数据驱动_Python数据驱动DDT的应用

原标题&#xff1a;Python数据驱动DDT的应用 在开始之前&#xff0c;我们先来明确一下什么是数据驱动&#xff0c;在百度百科中数据驱动的解释是&#xff1a;数据驱动测试&#xff0c;即黑盒测试&#xff08;Black-box Testing&#xff09;&#xff0c;又称为功能测试&#xff…

2008日志清理 server sql_SQL Server 2008 收缩日志 清空删除大日志文件

由于SQL2008对文件和日志管理进行了优化&#xff0c;所以以下语句在SQL2005中可以运行但在SQL2008中已经被取消&#xff1a;(SQL2005)BackupLog DNName with no_loggodumptransaction DNName with no_loggoUSE DNNameDBCC SHRINKFILE (2)Go-----------------------------------…

go java性能_服务端I/O性能大比拼:Node、PHP、Java和Go

理解应用程序的输入/输出(I/O)模型&#xff0c;意味着其在计划处理负载与残酷的实际使用场景之间的差异。若应用程序比较小&#xff0c;也没有服务于很高的负载&#xff0c;也许它影响甚微。但随着应用程序的负载逐渐上涨&#xff0c;采用错误的I/O模型有可能会让你到处踩坑&am…

python数据库安装_python数据库-MySQL安装问题总结(48)

一、ERROR 1698(28000):Access denied for user rootlocalhost错误 我的操作系统是ubuntu&#xff1a;我的MySQL版本是&#xff1a;安装完成后&#xff0c;登录mysql的时候就出现了如下错误&#xff1a;因为安装的过程中没让设置密码&#xff0c;可能密码为空&#xff0c;但无论…

[转]什么是RSS

http://www.blogbus.com/bangzhuzhongxin-logs/5452786.html 如果您够仔细的话&#xff0c;一定会发现BlogBus的每一个Blog站上都会有一个 图标。这个图标表示Blogbus支持RSS功能&#xff08;目前是RSS 2.0&#xff09;&#xff0c;即所谓的新闻聚合功能。 点击 图标&#xf…

京东的商品搜索功能是如何实现的_如何精准查询京东商品销量?分享一个京东运营小妙招...

京东平台和其他平台商品信息展示不一样&#xff0c;在京东平台商品的销售额无论是累计的还是当月的数据都没有展示&#xff0c;即便是通过商家后台的京东商智也是只能看到销售额的指数&#xff0c;这就给京东商家做竞品分析时设置了障碍&#xff0c;无法获取到竞品的真实销售额…

python 可视化监控平台_python可视化篇之流式数据监控的实现

preface 流式数据的监控&#xff0c;以下主要是从算法的呈现出发&#xff0c;提供一种python的实现思路 其中&#xff1a; 1.python是2.X版本 2.提供两种实现思路&#xff0c;一是基于matplotlib的animation&#xff0c;一是基于matplotlib的ion 话不多说&#xff0c;先了解大概…

codeforce 606A - Magic Spheres

题意&#xff1a;a,b,c三种球&#xff0c;能把俩个一样的球变成另一颜色不一样的球。给你目标x,y,z&#xff0c;问能否经过变化至少达打目标。 1 #include<iostream>2 #include<stdio.h>3 #include<stdlib.h>4 #include<memory.h>5 #include<string…

cmd cd 无法切换目录_一分钟掌握cmd基础操作,告别鼠标

cmd基础操作cmdcmd是command的缩写&#xff0c;一直伴随着windows操作系统。有时称为&#xff1a;控制台窗口&#xff0c;cmd窗口&#xff0c;黑窗口&#xff0c;命令行窗口等。其实&#xff0c;在unix系统&#xff0c;Linux&#xff0c;MacOS等几乎所有的操作系统中&#xff0…

css 背景图怎么设置自动填充满_CSS属性设置 -- 背景样式

Ⅰ background-color: -- 设置标签的背景颜色rgba(0,0,0,0.65); -- (红,緑,蓝三原色,透明度)只能给背景设置透明度opacity: 0.65; -- 改变整个标签的透明度<style>Ⅱ background-image: --设置标签的背景图片url("图片网址"); -- 如果图片的大小没有标签大&…

php开发客服系统(持久连接+轮询+反向ajax)

欢迎在php严程序 - php教程学习AJAX教程, 本节课讲解&#xff1a;php开发客服系统(持久连接轮询反向ajax) php开发客服系统(下载源码) 用户端(可直接给客户发送消息)客服端(点击用户名.即可给该用户回复消息) 讲两种实现方式&#xff1a;一&#xff1a;iframe 服务器推技术com…

c语言判断整数_C语言技能|(草稿,不断完善中...)

2020年春考C语言有2个题型&#xff1a;填空&#xff0b;程序程序填空涉及&#xff1a;一、头文件的引用1.必有#include (注意&#xff1a;在devC 5.10中#include "stdio.h"也是正确的)2.若程序中使用数学函数&#xff0c;应加上头文件#include 3.头文件结尾无分号二、…