/
How to pass Google reCaptcha using the API

How to pass Google reCaptcha using the API

每个网站都不一样,如果以下方式都不能解决问题,烦请您自己多研究研究,您可以的。

 

一、我是小白,不会写代码

没关系,我们可以通过使用chrome进行自动化验证,

具体操作教程可以阅读:Chrome浏览器插件,这个插件是免费的,使用时需要充点数(插件本身免费)

如果是recaptchaV2或者是hcaptcha验证码,

还可以使用我们的付费插件(插件需要购买授权),使用时需要充点数(插件本身也需要收费)

YesCaptcha人机助手(付费插件) 公测版 v2.0

 

二、我是程序员,我会写代码

首先假设我们已经学会怎么判断版本,知道怎么获得基本参数了

如何判断reCaptcha 是什么版本

如何找到reCaptcha 需要的各项参数

然后也学会怎么调用接口,生成识别结果response值了

创建识别任务,获取任务ID:createTask:创建识别任务

再拿任务ID去获取response:getTaskResult : 获取识别结果

如果上面还是不会的话,可以看一下两个DEMO

Python DEMO:requests协议提交 requests_demo.py

Python DEMO:selenium模拟提交 demo_selenium.py

如果你使用的是按钮精灵或者易语言,可以搜索比如:易语言如何调用resfull api接口

如果你使用的是易语言,可以使用我们提供的易语言DEMO

Yescaptcha易语言DEMO(含模拟点击与点击实例)

 

现在我们得到这个resonse值了,然后应该怎么通过这个该死的验证呢?

{ "gRecaptchaResponse": "03AGdBq25SxXT-pmSeBXjzScW-EiocHwwpwqtk1QXlJnGnUJCZrgjwLLdt7cb0..." }

我们要明白,我们这个接口,并不是一个能自动帮你点图片的工具,

这是一个模拟谷歌服务器直接给你返回正确的结果(response)的工具,

你拿到了这个正确的结果(response),接下来就应该把这个结果提交给你要登陆的网站,

告诉它,你已经通过验证了!

 

那么问题来了,应该如何提交给网站呢?一般有两种情况:

1.我们写的是协议提交(post方式)

也就是post数据包的方式提交给网站,

这时候观察一下你正常提交时,浏览器发送的请求的参数名,一般为g-recaptcha-response

不同的网站提交的参数不同,请你自己在浏览器按F12观察发送的请求以及参数名称(是提交给你的网站不是提交给谷歌)

如下图所示,把我们正确的结果(response)提交,就能通过验证了。

这是最简单,也是推荐的方式。

具体代码可以参见:

Python DEMO:requests协议提交 requests_demo.py

 

 

 

2.第二种,模拟操作

我们使用按键精灵,或者Python的selenium自动化工具,在屏幕上点点点操作的方式,

这种叫模拟操作,那么这种如何使用正确的结果(response)提交呢,

请听:我们正常点击之后,在网页上,一般会有一个地方存放这个结果,这个地方一般是这样的:

<textarea id="g-recaptcha-response" name="g-recaptcha-response" class="g-recaptcha-response" ></textarea>

这个地方有一个ID叫g-recaptcha-response的textarea,当你点击正确通过之后,

谷歌会把正确的结果(response)保存在这里,然后随着表单一起提交。

如果我的网站没有一个g-recaptcha-response的元素怎么办呢?

请先手动点击验证码,完成之后不要提交,按F12在elements中按Ctrl+f搜索 03a(识别结果以03a开头),

可能有好几个地方,找到一个元素(不在iframe框架页面下),就是网页中存放识别结果的地方。

 

这时候我们利用的方式就是,把我们通过接口获得的正确的结果(response),写入到这里,然后一起提交。

(这里我们已经通过接口生成了正确的结果(response),所以不再需要去点了!)

 

当然,上面这些步骤,一般来说可以通过 回调函数 来执行,包含写入response等等操作,所以最好是找到回调函数,

具体怎么找到回调函数,可以参考教程:

如何查找reCaptcha系列的回调函数

 

如何和模拟整合

一般来说, 我们推荐用户使用协议, 但是模拟依然可以整合我们的API

reCaptcha 包含两种方式, 一种是非回调, 一种是回调

 

两者有什么区别:

回调:就是网页中已经定义了一个JS的回调函数,我们只需要执行这个函数就可以完成操作,然后提交表单(有些时候,如果没有执行回调函数,提交按钮是灰色不可点击的情况,是因为网页做了限制,执行了回调函数也就解除限制了,所以最好是找到回调函数)

非回调:就是我们找不到回调函数,或者执行之后没有效果,可以使用这种方式(比较原始一点),(如果按钮是灰色之类的限制,还需要执行JS解除限制),然后再提交表单

 

非回调

ReCaptcha 会生成一个 textarea 用来存放 token, 我们可以手动写入

document.getElementById("g-recaptcha-response").innerHTML = "RESPONSE"; document.getElementById("g-recaptcha-response").text= "RESPONSE";

写入完成之后,就可以正常提交表单了,使用JS提交表单的方式很多

可以自己百度一下:如何用JS提交表单,例如:

每个网页的表单id或者存在多个表单,所以请自行研究如何提交表单

 

如果你是使用selenium这类工具,可以直接点击提交按钮,

以selenium 官方DEMO为例:(在顶部有链接)建议仔细看看)

Python DEMO:selenium模拟提交 demo_selenium.py

这样就是点击了提交按钮

 

 

回调

找到回调函数,直接执行回调函数,进行提交验证。

如何查找reCaptcha系列的回调函数

 

Related content

How to find the necessary parameters for Google reCaptcha
How to find the necessary parameters for Google reCaptcha
Read with this
如何通过API来通过 reCaptcha
如何通过API来通过 reCaptcha
More like this
YesCaptcha Documentation
YesCaptcha Documentation
Read with this
JS DEMO:requests协议提交 requests_demo.py
JS DEMO:requests协议提交 requests_demo.py
More like this
HCaptchaTaskProxyless : HCaptcha 协议接口
HCaptchaTaskProxyless : HCaptcha 协议接口
Read with this
Python DEMO:Submitting via the requests protocol requests_ demo.py
Python DEMO:Submitting via the requests protocol requests_ demo.py
More like this