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。

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

上代码

# -*- 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 差不多。

2.3.2 点选类验证码

点选类验证码

上代码

# -*- 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)

运行结果

2.3.3 字母数字验证码

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

上代码

# -*- coding:utf-8 -*-
# @Time   : 2022-03-06
# @Author : carl_DJ
import ddddocr
ocr = ddddocr.DdddOcr(old=True)
with open("z1.jpg", 'rb') as f:
    image = f.read()
res = ocr.classification(image)
print(res)

运行结果

2wkc

3、总结

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

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

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

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

所以,

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

目录
相关文章
|
15天前
|
XML JSON 数据库
Python的标准库
Python的标准库
135 77
|
1月前
|
机器学习/深度学习 算法 数据挖掘
数据分析的 10 个最佳 Python 库
数据分析的 10 个最佳 Python 库
87 4
数据分析的 10 个最佳 Python 库
|
16天前
|
XML JSON 数据库
Python的标准库
Python的标准库
44 11
|
29天前
|
人工智能 API 开发工具
aisuite:吴恩达发布开源Python库,一个接口调用多个大模型
吴恩达发布的开源Python库aisuite,提供了一个统一的接口来调用多个大型语言模型(LLM)服务。支持包括OpenAI、Anthropic、Azure等在内的11个模型平台,简化了多模型管理和测试的工作,促进了人工智能技术的应用和发展。
110 1
aisuite:吴恩达发布开源Python库,一个接口调用多个大模型
|
1月前
|
XML 存储 数据库
Python中的xmltodict库
xmltodict是Python中用于处理XML数据的强大库,可将XML数据与Python字典相互转换,适用于Web服务、配置文件读取及数据转换等场景。通过`parse`和`unparse`函数,轻松实现XML与字典间的转换,支持复杂结构和属性处理,并能有效管理错误。此外,还提供了实战案例,展示如何从XML配置文件中读取数据库连接信息并使用。
Python中的xmltodict库
|
16天前
|
数据可视化 Python
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
通过这些思维导图和分析说明表,您可以更直观地理解和选择适合的数据可视化图表类型,帮助更有效地展示和分析数据。
58 8
|
1月前
|
存储 人工智能 搜索推荐
Memoripy:支持 AI 应用上下文感知的记忆管理 Python 库
Memoripy 是一个 Python 库,用于管理 AI 应用中的上下文感知记忆,支持短期和长期存储,兼容 OpenAI 和 Ollama API。
95 6
Memoripy:支持 AI 应用上下文感知的记忆管理 Python 库
|
24天前
|
安全 API 文件存储
Yagmail邮件发送库:如何用Python实现自动化邮件营销?
本文详细介绍了如何使用Yagmail库实现自动化邮件营销。Yagmail是一个简洁强大的Python库,能简化邮件发送流程,支持文本、HTML邮件及附件发送,适用于数字营销场景。文章涵盖了Yagmail的基本使用、高级功能、案例分析及最佳实践,帮助读者轻松上手。
34 4
|
1月前
|
数据采集 数据可视化 数据处理
Python数据科学:Pandas库入门与实践
Python数据科学:Pandas库入门与实践
|
1月前
|
测试技术 Python
Python中的异步编程与`asyncio`库
Python中的异步编程与`asyncio`库