4

我目前正在尝试解决验证码,并决定使用流行的 2captcha 服务来实现。他们的方法是向他们发送验证码值(谷歌验证码密钥和站点线程),然后他们解决它并将应该发送给谷歌的完成值发回给我,以检查验证码是否已解决。

我被困在最后一步;使用返回的求解值并将其发送给谷歌。正如文档https://2captcha.com/2captcha-api#callback解释的那样,我没有找到“提交”按钮,因此需要自己找到 recaptcha 回调函数,所以我可以调用它。但是,我确实很难找到该功能,因为一切似乎都被混淆了。我探索了他们所有的方法来找到一个回调函数,但一直没能做到。我认为我最接近的是找到混淆的recaptcha-en.js(位于sources>webworker.js>www.gstatic.com>recaptcha/api2/v1519325468512https://pastebin.com/VgtJUftm,其中包含一些回调搜索词,尽管由于混淆我不知道该调用什么。尝试了一些反混淆工具,但没有运气。

所以; 当 recaptcha 未托管在我自己的网站上时,如何找到并触发 ReCaptcha 回调函数?提前致谢

4

1 回答 1

1

设法解决了我的问题,成功地解决了验证码,尽管我没有设法找到如何调用 recaptcha 回调函数。在我将返回的验证码解决值插入我的“g-recaptcha-response”字段后,我只是使用 javascript 提交表单,如下所述http://www.deathbycaptcha.com/user/api/newtokenrecaptcha#how-使用令牌

Selenium 与 Java:

    JavascriptExecutor js = (JavascriptExecutor) driver;
System.out.println("Executing js set-recaptcha-response script");
js.executeScript("document.getElementById(\"g-recaptcha-response\").innerHTML=\"" + responseToken + "\";");
System.out.println("Executing js submit-form script");
js.executeScript("document.getElementsByName('post')[0].submit();");

于 2018-02-25T16:05:37.870 回答