Python之验证码识别功能
Python之pytesseract 识别验证码
1、验证码来一个
2、适合什么样的验证码呢?
只能识别简单、静态、无重叠、只有数字字母的验证码
3、实际应用:模拟人工登录、页面内容识别、爬虫抓取信息
步骤一:
下载工具Tesseract-OCR,下载地址https://digi.bib.uni-mannheim.de/tesseract/,下载成功后,傻瓜式安装在英文路径下
安装后或出现一个目录:D:\syspath\tesseract\Tesseract-OCR,将安装路径配置环境变量
步骤二:
添加tessdata系统变量,要注意是系统变量:名称TESSDATA_PREFIX;路径D:\syspath\tesseract\Tesseract-OCR\tessdata
dos命令窗口输入:tesseract --version 展示版本信息后说明OK
验证图片识别:
同样dos命令窗口:tesseract C:\a.png D:\1.txt
a.png是图片,1.txt是识别后数据存放文件
如何识别页面上的信息并抓取信息
安装pytesserac模块:pip install pytesserac
修改pytesseract.py文件中tesseract_cmd字段信息
例如:将tesseract_cmd = 'tesseract'修改为:tesseract_cmd = 'D:/Program Files (x86)/Tesseract-OCR/tesseract.exe'
这样就安装好pytesserac模块了
使用:
一个获取登陆页面验证码的脚本#-*- coding = utf - 8 -*-
import time , sys
import pytesseract
from PIL import Image,ImageEnhance
from selenium import webdriver
screenImg = "D:/checkcode.png"
driver = webdriver.Chrome
driver.get(https://192.168.1.1:8080/login)
driver.maximize_window()
driver.save_screenshot(screenImg) # 截取当前网页,该网页有我们需要的验证码
location = self.param1.find_element_by_xpath("//img[@class='check-code']").location
size = self.param1.find_element_by_xpath("//img[@class='check-code']").size
left = location['x']
top = location['y']
right = location['x'] + size['width']
bottom = location['y'] + size['height']
img = Image.open(screenImg).crop((left, top, right, bottom))
img = img.convert('L') # 转换模式:L | RGB
img = ImageEnhance.Contrast(img) # 增强对比度
img = img.enhance(2.0) # 增加饱和度
img.save(screenImg)
# 读取截图
img = Image.open(screenImg)
# 获取验证码
code = pytesseract.image_to_string(img)
# 打印验证码
print(list(code))
以上是抓取一个页面的验证码,那么同样可以使用在爬虫上面去
楼主萌新,不喜勿喷 哈哈哈
Python之验证码识别功能的更多相关文章
- Python - PIL-pytesseract-tesseract验证码识别
N天前实现了简单的验证识别,这玩意以前都觉得是高大上的东西,一直没有去研究,这次花了点时间研究了一下,当然只是一些基础的东西,高深的我也不会,分享一下给大家吧. 关于python验证码识别库,网上主要 ...
- 关于利用python进行验证码识别的一些想法
转载:@小五义http://www.cnblogs.com/xiaowuyi 用python加“验证码”为关键词在baidu里搜一下,可以找到很多关于验证码识别的文章.我大体看了一下,主要方法有几类: ...
- python之验证码识别 特征向量提取和余弦相似性比较
0.目录 1.参考2.没事画个流程图3.完整代码4.改进方向 1.参考 https://en.wikipedia.org/wiki/Cosine_similarity https://zh.wikip ...
- Mac python Tesseract 验证码识别
Tesseract 简介 Tesseract(/'tesərækt/) 这个词的意思是"超立方体",指的是几何学里的四维标准方体,又称"正八胞体".不过这里要讲 ...
- python tesseract-ocr 基础验证码识别功能(Windows)
一.环境 windows 7 x64 Python 3 + 二.安装 1.tesseract-ocr安装 http://digi.bib.uni-mannheim.de/tesseract/ 2.py ...
- python 豆瓣验证码识别总结
总结: pytesseract 识别比较标准的图片 识别成功率 还是不错的. 验证码的图片识别 需要先处理好 再用pytesseract 识别 from PIL import Image ...
- python语言验证码识别,以后不用老输入验证码了。
1.Python 3.6 安装包 1.要加环境变量 2.pip安装PIL库 3.pip安装pytesseract模块 2.tesseract-ocr-setup-4.00.00dev.exe -- ...
- python+tesseract验证码识别的一点小心得
由于公司需要,最近开始学习验证码的识别 我选用的是tesseract-ocr进行识别,据说以前是惠普公司开发的排名前三的,现在开源了.到目前为止已经出到3.0.2了 当然了,前期我们还是需要对验证码进 ...
- python简单验证码识别
在学习python通过接口自动登录网站时,用户名密码.cookies.headers都好解决但是在碰到验证码这个时就有点棘手了:于是通过网上看贴,看官网完成了对简单验证码的识别,如果是复杂的请看大神的 ...
随机推荐
- python基础学习7
python基础学习7 内容概要 字符串的内置方法 字符串的内置方法(补充) 列表的内置方法 可变类型与不可变类型 队列与堆栈 内容详情 字符串的内置方法 # 1.strip 移除字符串首尾的指定字符 ...
- C#项目中常见的目录和文件
本文迁移自Panda666原博客,原发布时间:2021年4月17日. Bin 目录 bin是英文binary的缩写, 字面意思是二进制,意指用来存放编译后的结果.C#/VB编译器编译后的程序二进制文件 ...
- 第五章、Linux网络服务之yum仓库
目录 一.yum仓库简介 二.yum配置文件 1yum主配置文件 2日志文件 三.yum命令详解 1查询软件包命令 2查询软件包组命令 3yum安装升级 4 软件卸载 四.搭建yum仓库 本地仓库 h ...
- Windows下新建隐藏用户名
Windows下新建隐藏用户名,防止忘记密码
- React技巧之发出http请求
原文链接:https://bobbyhadz.com/blog/react-send-request-on-click 作者:Borislav Hadzhiev 正文从这开始~ 总览 在React中, ...
- -bash: /usr/local/maven/apache-maven-3.8.1/bin/mvn: 权限不够
chmod a+x /usr/local/maven/apache-maven-3.8.1/bin/mvn
- 记一次 .NET 差旅管理后台 CPU 爆高分析
一:背景 1. 讲故事 前段时间有位朋友在微信上找到我,说他的 web 系统 cpu 运行一段时候后就爆高了,让我帮忙看一下是怎么回事,那就看吧,声明一下,我看 dump 是免费的,主要是锤炼自己技术 ...
- 6. RDD综合练习:更丰富的操作
集合运算练习 union(), intersection(),subtract(), cartesian() 内连接与外连接 join(), leftOuterJoin(), rightOuterJo ...
- Node.js精进(8)——错误处理
在 Node.js 中,提供了 error 模块,并且内置了标准的 JavaScript 错误,常见的有: EvalError:在调用 eval() 函数时出现问题时抛出该错误. SyntaxErro ...
- Java 内存模型,或许应该这么理解
大家好,我是树哥. 在前面一段时间,我连续写了几篇关于并发编程的文章: 从 CPU 讲起,深入理解 Java 内存模型! - 陈树义的博客 深入理解 happens-before 原则 - 陈树义的博 ...