Python3,这个库,真的是图片类型验证码的克星,真香。

简介: Python3,这个库,真的是图片类型验证码的克星,真香。

1、引言


小屌丝: 鱼哥,你说爬虫或者登录网页,最烦的是那个操作?

小鱼:图片验证码了。

小屌丝:确实是的,那有没有什么办法,能破解这种繁琐的验证呢?

小鱼:方法嘛,有啊,例如:cookie啊,或者利用第三方库啊

小屌丝:真的有第三方库,可以解决这个问题?

小鱼:对啊,很方便的,

小屌丝:演示一下如何?

小鱼:怎么突然点饿了 ~

小屌丝:我懂我懂, 你分享完,咱们泡澡去~


2、 ddddocr


2.1 介绍


验证码,复杂一点的有滑块验证码,点选文章和点选图片验证码。这些都是爬虫和WebUI自动化测试中中的老大难问题,今天介绍一款通用验证码识别 SDK 对他们彻底说拜拜,它的名字是 ddddocr 带带弟弟 OCR 通用验证码识别 SDK 免费开源版。


2.2 安装


老规矩,在使用前,必须要安装。

安装方式逃不了 pip方式:


pip install ddddocr


其他方式安装:


《Python3,选择Python自动安装第三方库,从此跟pip说拜拜!!》

《Python3:我低调的只用一行代码,就导入Python所有库!!》


2.3 使用


2.3.1 滑块验证码


滑块验证码这里用的是豆瓣的滑块验证。下滑块是单独的透明背景图 hycdn.png。

image.png


背景图是带小滑块坑位的 background.jpg。

image.png

上代码


# -*- coding:utf-8 -*-
# @Time   : 2022-03-06
# @Author : carl_DJ
import ddddocr
det = ddddocr.DdddOcr(det=False, ocr=False)
with open('hycdn.png', 'rb') as f:
        target_bytes = f.read()
with open('background.jpg', 'rb') as f:
    background_bytes = f.read()
res = det.slide_match(target_bytes, background_bytes, simple_target=True)
print(f"{res}")


运行结果:


{'target_y': 0, 'target': [486, 126, 622, 262]}


target 属性的前两个值正好和豆瓣验证滑块 url 中提交的 ans 差不多。

image.png


2.3.2 点选类验证码


点选类验证码

image.png

上代码


# -*- coding:utf-8 -*-
# @Time   : 2022-03-06
# @Author : carl_DJ
import ddddocr
det = ddddocr.DdddOcr(det=True)
with open("eb.jpg", 'rb') as f:
    image = f.read()
poses = det.detection(image)
im = cv2.imread("eb.jpg")
for box in poses:
    x1, y1, x2, y2 = box
    im = cv2.rectangle(im, (x1, y1), (x2, y2), color=(0, 0, 255), thickness=2)
cv2.imwrite("result.jpg", im)


运行结果

image.png

2.3.3 字母数字验证码


字母数字验证码的图片来自于 google 搜索

image.png

上代码


2wkc


运行结果


2wkc


3、总结


今天的分享,就到这里了。

奇奇怪怪的知识,是不是又增加了。

曾经编写WebUI自动化脚本,为了不在验证码识别大费周折,就让开发大佬把验证码给注释掉。

现在,有了ddddocr, 就再也不用麻烦开发大佬注释验证码了,

所以,

关注小鱼,学习更多关于python第三方库的知识。

目录
相关文章
|
数据采集 文字识别 测试技术
Python3,这个库,真的是图片类型验证码的克星,真香。
Python3,这个库,真的是图片类型验证码的克星,真香。
104 0
|
8月前
|
前端开发 Python
【Python • 项目实战】pytesseract+pyqt实现图片识别软件小项目——(二)实现QQ截图功能
【Python • 项目实战】pytesseract+pyqt实现图片识别软件小项目——(二)实现QQ截图功能
254 0
|
5月前
|
设计模式 JSON 程序员
豆瓣评分9.4!Python程序员必读的《流畅的Python》,放这里了!
Python 官方教程的开头是这样写的:“Python 是一门既容易上手又强大的编程语言。””这句话本身并无大碍,但需要注意的是,正因为它既好学又好用,所以很多Python程序员只用到了其强大功能的一小部分,只需要几个小时,经验丰富的程序员就能学会用 Python 写出实用的程序。 然而随着这最初高产的几个小时变成数周甚至数月,在那些先入为主的编程语言的影响下,开发者们会慢慢地写出带着“口音”的 Python 代码。即便 Python 是你的初恋,也难逃此命运。因为在学校里,亦或是那些入门书上,教授者往往会有意避免只跟语言本身相关的特性。
|
8月前
|
机器学习/深度学习 IDE 开发工具
《Python 语音转换简易速速上手小册》第2章 Python 编程基础(2024 最新版)(下)
《Python 语音转换简易速速上手小册》第2章 Python 编程基础(2024 最新版)
53 1
|
Python
Python实战项目2——自动获取酷狗音乐工具
Python实战项目2——自动获取酷狗音乐工具
195 0
|
8月前
|
数据采集 数据可视化 数据挖掘
《Python 语音转换简易速速上手小册》第2章 Python 编程基础(2024 最新版)(上)
《Python 语音转换简易速速上手小册》第2章 Python 编程基础(2024 最新版)
79 0
|
8月前
|
数据采集 XML 存储
【Python】Python音乐网站数据+音频文件数据抓取(代码+报告)【独一无二】
【Python】Python音乐网站数据+音频文件数据抓取(代码+报告)【独一无二】
|
程序员 Python
免费制作国旗头像,1行Python代码搞定,小白可用
免费制作国旗头像,1行Python代码搞定,小白可用
137 0
免费制作国旗头像,1行Python代码搞定,小白可用
|
Python
如何用Python制作一个简单的二维码生成器
如何用Python制作一个简单的二维码生成器
297 0
|
前端开发 开发工具 Python
【开源&学习】真香!一款超级漂亮实用的Python图形验证码!
在提交表单的时候为了防止机器操作或者是恶意的攻击,在填写表单的时候一般都用验证码来过滤掉一些非法提交数据。今天给大家介绍一款超实用超漂亮的Python验证码库:KgCaptcha。
【开源&学习】真香!一款超级漂亮实用的Python图形验证码!