利用图像识别接口解决reCaptchaV2与HCaptcha
回答
收藏

利用图像识别接口解决reCaptchaV2与HCaptcha

明恒
2024-03-13 20:26·浏览量:2812
明恒
发布于 2023-03-20 16:13更新于 2024-03-13 20:262812浏览

一、平台介绍
官网:https://yescaptcha.com/dashboard.html
在国外网站大家都有可能遇到下面类似的验证码:

官网提供了付费插件、协议接口、图像识别等方式
方式环境:
(1)付费插件:需要浏览器允许安装插件
(2)协议接口:获取协议接口参数进行请求(受限于网页)
(3)图像识别:拿到图片后接口post进行请求(桌面、网页都适用)

二、HCaptcha图像识别
2.1 什么是HCaptcha?看图


2.2 解决步骤思路
(1)接口需要什么东西?

clientKey:自己注册账号官网后生成的密钥
        type:验证码类型(固定)
        queries:用列表存储的base编码图片(9张图片)
        question:验证码的问题
(2)返回的结果是什么?

只需要拿到solution中的objects内容就能对应我的9张图片是否为目标图片
(3)验证是否能把我要的东西都获取下来
 clientKey:登录官网在仪表盘获取

queries:先用元素截图指令将图片获取下来,再将它转为base64编码并存储在列表中
图片可以捕获

利用base64库将图片进行转化


结合起来就是:

question:直接使用获取元素信息指令

2.3 实例
模块需要安装requests与 loguru库

指令操作:

python模块内容:


(1)第一次调用模块传入参数:file>>>图片文件路径

(2)第二次调用模块传入参数:

api_key:

api_url:  https://api.yescaptcha.com/createTask

queries:存储9张base64编码图片的列表
question:问题

注意:返回来是经过二次处理也就是result['solution']['objects']里的内容,结果例子为[False,True,xxxx]
if判断选择boolen的类型

三、reCaptchaV2图像识别
3.1 什么是reCaptchaV2?看图


3.2 解决步骤思路
(1)接口需要什么东西?

clientKey:自己注册账号官网后生成的密钥
  type:验证码类型(固定)
  queries:先将图片转为对应缩放的标准大小再将图片转为base64,以字符串形式传入
  question:根据官网提供的问题ID表
(2)返回的结果是什么?


只需要拿到solution中的objects内容就能对应我要点的图片是哪一张
(3)验证是否能把我要的东西都获取下来
clientKey:登录官网在仪表盘获取

queries:先用元素截图指令将图片获取下来根据官网提供的验证方法先转为标准的图片大小,
再将它转为base64编码

如上图所示:图1文字是包含图块也就是4*4(450*450),图2文字是包含图片也就是3*3(300*300)
官方提供:

3x3是“选择所有图片” 或者 Select all images with xxx

4x4是“选择所有图块” 或者 select all squares with xxx
利用base64库将图片进行转化

结合起来就是:

3.3 实例
模块需要安装requests与 loguru库
指令操作:


python模块内容:


(1)第一次调用模块传输为标准大小图片的文件路径

(2)第二次调用模块

api_key:

api_url:  https://api.yescaptcha.com/createTask

queries:拿到上一个调用模块返回的base64编码结果
quesion:模块里面已封装官网给的ID映射表

返回的结果列表例子:[0,2,4]
根据列表来实现点击元素位置,欢迎大家下面讨论!
由于字符过长,代码需要复制可通过此链接:https://proud-money-612.notion.site/reCaptchaV2-HCaptcha-606e57f7a74c438cb1064a593458cf3c

收藏5
全部回答1
最新
发布回答
回答