Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

kcaptcha

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

kcaptcha

kill captcha

  • 1.0.3
  • PyPI
  • Socket score

Maintainers
1

Kcaptcha API文档


Latest Version: 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. 增加了debug参数,用来显示识别过程中各阶段的图片,方便调整阈值参数。


一、概述

通过 API 提供字符型验证码识别、滑块验证码的滑动距离识别、点选验证码的点击位置识别服务。

HOST: 192.168.0.155:9898

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

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

  1. 通用字符型验证

    image-20220413093452270

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

    image-20220413093634982image-20220413093652372

  3. 通用滑块-匹配模式

    适用于能获取滑块图片(target_img)及带缺口背景图(bg_img)的滑块验证码,返回滑块的位置

    image-20220413094037039image-20220413094047235

  4. 通用滑块-比较模式

    适用于能获取完整背景图及带缺口背景图的滑块验证码,返回滑动距离

    image-20220413094223146image-20220413094212874

  5. 极验文字点选验证码识别

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

    image-20220413094510796


二、通用字符型验证码

1. 请求参数(POST)
名称类型必填示例描述
imgString图片二进制文件图片的二进制文件,调用时把图片二进制文件放入到HTTP body 中上传即可。
2. 返回数据
名称类型示例描述
codeInteger200状态码
msgString""状态描述
resultsString"jepv"识别结果
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)
名称类型必填示例描述
imgString图片二进制文件图片的二进制文件,调用时把图片二进制文件放入到HTTP body 中上传即可。
2. 返回数据
名称类型示例描述
codeInteger200状态码
msgString""状态描述
resultsArray[[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_imgString图片二进制文件滑块图片的二进制文件,调用时把图片二进制文件放入到HTTP body 中上传即可
bg_imgString图片二进制文件带缺口背景图片的二进制文件,调用时把图片二进制文件放入到HTTP body 中上传即可
methodInteger4进行滑块匹配的算法模式,可选值为0~4,具体算法含义可参考cv2的文档
target_threshold_minInteger100滑块图二值化处理的最小阈值
target_threshold_maxInteger300滑块图二值化处理的最大阈值
background_threshold_minInteger100背景图二值化处理的最小阈值
background_threshold_maxInteger130背景图二值化处理的最大阈值
borderBoolTrue对滑块图片处理时是否添加边框

:因各类滑块验证码存在差异,当发现识别准确率不高时,可尝试调整 method、target_threshold_min、target_threshold_max、background_threshold_min、background_threshold_max、border 参数

2. 返回数据
名称类型示例描述
codeInteger200状态码
msgString""状态描述
resultsObject{"target_y": 0, "target": [191, 116, 259, 184]}识别结果:target_y 为Y轴方向上移动的距离;target 为缺口位置,以四元组表示,分别为左上x坐标、左上y坐标、右下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_imgString图片二进制文件完整背景图片的二进制文件,调用时把图片二进制文件放入到HTTP body 中上传即可
bg_imgString图片二进制文件带缺口背景图片的二进制文件,调用时把图片二进制文件放入到HTTP body 中上传即可
2. 返回数据
名称类型示例描述
codeInteger200状态码
msgString""状态描述
resultsObject{'target': [124, 79]}识别结果:target 为缺口位置,以二元组表示,分别为缺口左侧距做边框的距离、纵坐标。
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)
名称类型必填示例描述
imgString图片二进制文件图片的二进制文件,调用时把图片二进制文件放入到HTTP body 中上传即可。
2. 返回数据
名称类型示例描述
codeInteger200状态码
msgString""状态描述
resultsArray[{"char": "松", "target": [149, 125, 207, 182]}, {"char": "油", "target": [9, 242, 67, 300]}, {"char": "醇", "target": [94, 25, 156, 87]}]识别结果:按顺序返回识别结果,每项中char为识别的字,target为一个四元组,分别为左上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


Todo:

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

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

  • 极验图标点选验证

  • 极验语序点选验证码

  • 计算式验证码处理

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc