滑块验证码识别代码分享

 平时我们开发爬虫会遇到各种各样的滑动验证码,如下图所示:

为了解决这个问题,我写了一个通用的滑块验证码识别代码,主要是分析图片,然后计算出滑块滑动的像素距离。但是像素距离大多数情况下都不会等于滑动距离,所以需要进行转换。

滑动距离的计算我之前写了一个博客,可以点击查看

《抖音滑块验证码滑动距离计算_滑动验证码 验证判断距离还是对齐-CSDN博客》

最后送上缺口的识别代码:


import base64
import requests
import datetime
from io import BytesIO
from PIL import Imaget1 = datetime.datetime.now()#PIL图片保存为base64编码
def PIL_base64(img, coding='utf-8'):img_format = img.formatif img_format == None:img_format = 'JPEG'format_str = 'JPEG'if 'png' == img_format.lower():format_str = 'PNG'if 'gif' == img_format.lower():format_str = 'gif'if img.mode == "P":img = img.convert('RGB')if img.mode == "RGBA":format_str = 'PNG'img_format = 'PNG'output_buffer = BytesIO()# img.save(output_buffer, format=format_str)img.save(output_buffer, quality=100, format=format_str)byte_data = output_buffer.getvalue()base64_str = 'data:image/' + img_format.lower() + ';base64,' + base64.b64encode(byte_data).decode(coding)return base64_str# 加载图片
img1 = Image.open(r'E:\Python\lixin_project\OpenAPI接口测试\test_img\6号模型图片.jpg')
# 图片转base64
img1_base64 = PIL_base64(img1)# 验证码识别接口
url = "http://localhost:8000/openapi/verify_code_identify/"
data = {# 用户的key"key":"9sdPsk5Czyj4vhXujuJw",# 验证码类型"verify_idf_id":"6",# 样例图片"img_base64":img1_base64,# # 中文点选,空间语义类型验证码的文本描述(这里缺省为空字符串)# "words":""
}
header = {"Content-Type": "application/json"}# 发送请求调用接口
response = requests.post(url=url, json=data, headers=header)# 获取响应数据,识别结果
print(response.text)
print("耗时:", datetime.datetime.now() - t1)

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

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

相关文章

【Make编译控制 06】CMake初步使用

目录 一、概述与安装 二、编译源文件 三、无关文件管理 一、概述与安装 CMake是一个跨平台的项目构建工具,相比于Makefile,CMake更加高级,因为CMake代码在执行的时候是会先翻译生成Makefile文件,再调用Makefile文件完成项目构…

EMC学习笔记(二十三)降低EMI的PCB设计指南(三)

双层板电源分配 1.单点与多点分布2.星型分布3.创建网格平面4.旁路和磁珠5.将噪声保持在芯片附近 tips:资料主要来自网络,仅供学习使用。 1.单点与多点分布 在一个真正的单点配电系统中,每个有源元件都有自己独立的电源和地,这些…

金融信贷风控决策引擎详解

风控决策引擎含义 风控决策引擎是对复杂的业务逻辑抽象化剥离出来的业务规则进行不同的分支组合、关联,然后层层规则递进运算,最终输出决策结果的产品。 传统的风控决策引擎主要实现规则的逻辑判断,例如:女厕所的规则可以制定成“…

Electron+Vue实现仿网易云音乐实战

前言 这个项目是我跟着官方文档的那个Electron入门教程大致跑了一遍,了解了下Electron开发流程之后的实战项目,所以中间应该是会有很多写法不是很规范,安全性有可能也没考虑到,可实现的各种api也不是很了解,适合初学者。 必须感谢 https://github.com/Binaryify/NeteaseC…

SFML(1) | 自由落体小球

小游戏和GUI编程(1) | 基于 SFML 的自由落体小球 文章目录 小游戏和GUI编程(1) | 基于 SFML 的自由落体小球1. 目的2. SFML 适合做图形显示的理由3. 使用 SFML - 构建阶段4. 使用 SFML - C 代码4.0 代码布局4.1 创建窗口4.2 循环显示窗口, 并处理关闭事件4.3 使用能够执行绘制的…

fast.ai 深度学习笔记(五)

深度学习 2:第 2 部分第 10 课 原文:medium.com/hiromi_suenaga/deep-learning-2-part-2-lesson-10-422d87c3340c 译者:飞龙 协议:CC BY-NC-SA 4.0 来自 fast.ai 课程的个人笔记。随着我继续复习课程以“真正”理解它,…

移动端web开发布局

目录 flex布局: flex布局父项常见属性: flex布局子项常见属性: REM适配布局: 响应式布局: flex布局: 需要先给父类盒子设置display:flex flex是flexiblebox的缩写,意为"弹…

【Java八股面试系列】并发编程-并发关键字,线程池

目录 并发关键字 Synchronized synchronized最主要的三种使用方式: 具体使用:双重校验锁单例模式 synchronized 底层实现原理? synchronized锁的优化 偏向锁 轻量级锁 重量级锁 Mark Word 与 Monitor 之间的关系 总结 偏向锁、轻量…

【MySQL】数据库基础 -- 详解

一、什么是数据库 存储数据用文件就可以了,为什么还要弄个数据库? 一般的文件确实提供了数据的存储功能,但是文件并没有提供非常好的数据(内容)的管理能力(用户角度)。 文件保存数据有以下几个缺点&…

fast.ai 深度学习笔记(一)

深度学习 2:第 1 部分第 1 课 原文:medium.com/hiromi_suenaga/deep-learning-2-part-1-lesson-1-602f73869197 译者:飞龙 协议:CC BY-NC-SA 4.0 来自 fast.ai 课程的个人笔记。随着我继续复习课程以“真正”理解它,这…

JAVA设计模式之策略模式详解

策略模式 1 策略模式概述 策略模式(strategy pattern)的原始定义是:定义一系列算法,将每一个算法封装起来,并使它们可以相互替换。策略模式让算法可以独立于使用它的客户端而变化。 其实我们在现实生活中常常遇到实现某种目标存在多种策略…

第9讲 详解第 2 套真题

第9讲 详解第 2 套真题 基本编程题【15 分】简单应用题【25 分】综合应用题【20 分】问题 1【10 分】:问题 2【10 分】:各位小伙伴想要博客相关资料的话关注公众号:chuanyeTry即可领取相关资料! 基本编程题【15 分】 考生文件夹下存在一个文件 PY101.py,请写代码替换横线,不…