Skip to main content

杀死验证码

项目描述

Kcaptcha API文档


最新版本:1.0.3

pip install kcaptcha==1.0.3


更新

2022-04-18:

  1. 打包时未能正确包含数据文件的问题修复。

2022-04-17:

  1. 已通过pypi发布。可通过pip install kcaptcha安装。(但不想写文档先忍一下[doge])

    from kcaptcha.core import SlideKiller
    
    
    slide_killer = SlideKiller()
    # test slide match mode
    with open('imgs/slide_match_target_1.jpg', 'rb') as f:
        test_match_target = f.read()
    with open('imgs/slide_match_bg_1.jpg', 'rb') as f:
        test_match_background = f.read()
    match_result = slide_killer.match(test_match_target, test_match_background, simple_target=True,
                                      target_threshold=(200, 300),
                                      method=4,
                                      background_threshold=(100, 200), debug=True, border=True)
    
  2. 增加调试参数,显示参数,识别过程中各阶段的图像,方便调整。


一、概述

通过API提供类型识别、识别码的识别码的识别点的识别服务。

主机: 192.168.0.155:9898

功能 URI 备注
通用字符型验证码识别 /common/ocr/文件 通过开源的onnx格式人工智能模型实现
通用点选验证码识别 /common/det/文件 通过开源的onnx格式人工智能模型实现
通用身份验证码识别-匹配模式 /common/slide-match/文件 通过cv库实现
通用鉴别码识别-对比模式 /common/slide-match/文件 通过cv库实现
极验文字点选验证码 /geetest/order-click/文件 通过cv库及ai模型实现

可以处理的验证码示例如下:

  1. 通用字符型鉴定

    image-20220413093452270

  2. 通用点选(不带语序,仅用于目标识别)

    image-20220413093634982image-20220413093652372

  3. 通用通用匹配模式

    于能获取图片(及目标图片)的背景图(背景图)

    image-20220413094037039image-20220413094047235

  4. 通用通用-比较模式

    及带获取背景图的背景图验证于身份,从而能够返回完整距离

    image-20220413094223146image-20220413094212874

  5. 极验文字点选验证码

    按顺序点选文字验证码,图标形式暂未实现。

    image-20220413094510796


二、通用字符型验证码

1. 请求参数(POST)

名称 类型 必填 示例 描述
图像 细绳 是 图片文件 图片中的传输文件,调用时将图片传送到HTTP正文上传自动。

2. 返回数据

名称 类型 示例 描述
代码 整数 200 状态码
味精 细绳 “” 状态描述
结果 细绳 “杰普” 识别结果

3. 请求示例

import requests

url = HOST + '/common/ocr/file'
img_file_path = {Your Img Filepath}
files = {
    'img': ('img', open(img_file_path, 'rb'))
}
response = requests.post(url, files=files)

4. 响应示例

{"code": 200, "results": "jepv", "msg": ""}

三、通用点选型验证码

1. 请求参数(POST)

名称 类型 必填 示例 描述
图像 细绳 是 图片文件 图片中的传输文件,调用时将图片传送到HTTP正文上传自动。

2. 返回数据

名称 类型 示例 描述
代码 整数 200 状态码
味精 细绳 “” 状态描述
结果 大批 [[131、53、182、103]、[214、52、258、96]] 识别结果:列表每一个为一个四元组,该四元组一个区域,分别为左上x坐标、左上y坐标、右下x坐标、右下y坐标。

3. 请求示例

import requests

url = HOST + '/common/det/file'
img_file_path = {Your Img Filepath}
files = {
    'img': ('img', open(img_file_path, 'rb'))
}
response = requests.post(url, files=files)

4. 响应示例

{"code": 200, "results": [[131, 53, 182, 103], [214, 52, 258, 96], [299, 105, 350, 154], [292, 17, 341, 65]], "msg": ""}

image-20220413110345937


四、通用识别码识别-匹配模式

1. 请求参数(POST)

名称 类型 必填 示例 描述
target_img 细绳 是 图片文件 将图片的主体文件调用时把图片中的文件通过HTTP上传到
bg_img 细绳 是 图片文件 带背景图片的文件,调用时把图片中的文件上传到HTTP正文
方法 整数 否 4 进行基因包含的算法模式,任选匹配0~4,具体算法可参考cv2的文档
target_threshold_min 整数 否 100 尿图二值化处理的最小值
target_threshold_max 整数 否 300 血清二值化处理的最大价值
background_threshold_min 整数 否 100 二值化处理的基线值图
background_threshold_max 整数 否 130 背景二值化处理最大的器官值
边界 布尔 否 真的 对那些图片 处理时是否添加图片

注:因各种时发现验证码存在差异,当识别准确率不高,可尝试调整方法、阈值_阈值_最小值、目标阈值_最大值、背景阈值_最大值、目标阈值_参数、边界参数

2. 返回数据

名称 类型 示例 描述
代码 整数 200 状态码
味精 细绳 “” 状态描述
结果 目的 {"target_y": 0, "target": [191, 116, 259, 184]} 右:target_y 为Y轴上移动的距离;target 为正确识别位置,以四元组分别表示,为左上x坐标、左上x坐标、下x坐标、下y坐标。

3. 请求示例

import requests

url = HOST + '/common/slide-match/file'
target_img_file_path = {Your Img Filepath}
bg_img_file_path = {Your Img Filepath}
data = {
    'method': 4,
    'target_threshold_min': 100,
    'target_threshold_max': 300,
    'background_threshold_min': 100,
    'background_threshold_max': 130,
    'border': True
}
files = {
    'target_img': ('img', open(target_img_file_path, 'rb')),
    'bg_img': ('img', open(bg_img_file_path, 'rb')),
}
response = requests.post(url, files=files, data=data)

4. 响应示例

{"code": 200, "results": {"target_y": 0, "target": [191, 116, 259, 184]}, "msg": ""}

image-20220413110455633


五、通用识别码识别-对比模式

1. 请求参数(POST)

名称 类型 必填 示例 描述
full_bg_img 细绳 是 图片文件 完整背景图片的上传文件调用时把图片文件传递到HTTP正文中上传
bg_img 细绳 是 图片文件 带背景图片的文件,调用时把图片中的文件上传到HTTP正文

2. 返回数据

名称 类型 示例 描述
代码 整数 200 状态码
味精 细绳 “” 状态描述
结果 目的 {'目标':[124, 79]} 定位:目标组为识别位置,以二元表示,分别为结果的左侧距定位范围、纵坐标。

3. 请求示例

import requests

url = HOST + '/common/slide-compare/file'
full_bg_img_path = {Your Img Filepath}
bg_img_path = {Your Img Filepath}
files = {
    'full_bg_img': ('img', open(full_bg_img, 'rb')),
    'bg_img': ('img', open(bg_img_path, 'rb')),
}
response = requests.post(url, files=files)

4. 响应示例

{"code": 200, "results": {'target': [124, 79]}, "msg": ""}

image-20220413105523331


六、极验文字点选验证码识别

1. 请求参数(POST)

名称 类型 必填 示例 描述
图像 细绳 是 图片文件 图片中的传输文件,调用时将图片传送到HTTP正文上传自动。

2. 返回数据

名称 类型 示例 描述
代码 整数 200 状态码
味精 细绳 “” 状态描述
结果 大批 [{"char": "松", "target": [149, 125, 207, 182]}, {"char": "油", "target": [9, 242, 67, 300]}, { "char": "醇", "target": [94, 25, 156, 87]}] 结果:顺序返回识别结果,每项中的字符为识别的字,目标为一个四元组,分别为左上x坐标、左上y坐标、右下x坐标、右下y坐标。

3. 请求示例

import requests

url = HOST + '/geetest/order-click/file'
img_file_path = {Your Img Filepath}
files = {
    'img': ('img', open(img_file_path, 'rb'))
}
response = requests.post(url, files=files)

4. 响应示例

{"code": 200, "results": [{"char": "松", "target": [149, 125, 207, 182]}, {"char": "油", "target": [9, 242, 67, 300]}, {"char": "醇", "target": [94, 25, 156, 87]}], "msg": ""}

image-20220413111306739


去做:

  • 通过pypi发布,以提供更多的方式使用

  • 增加的调试功能:调用时任选可以返回中间的过程图,方便调节值等参数提高准确率

  • 极验图标点选验证

  • 极验语序点选验证码

  • 计算式验证码处理

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

kcaptcha-1.0.3.tar.gz (15.1 kB 查看哈希)

已上传 source

内置分布

kcaptcha-1.0.3-py3-none-any.whl (75.9 MB 查看哈希)

已上传 py3