RecaptchaV2TaskProxyless: 프록시 없이 자동으로 구글 리캡챠 우회
이 유형의 태스크가 프록시 없이 구글 리캡챠 V2를 풉니다. 저희 자체 프록시 서버 및/혹은 작업자 IP 주소를 이용하여 태스크가 처리될 것입니다.
현재 리캡챠는 퍼즐이 한 개의 IP 주소에서 풀리고 g-response가 있는 양식이 다른 IP로부터 제출될 때의 상황으로부터 보호해주지 못합니다. 구글 API 제공하지 않음 리캡챠를 푼 사람의 IP 주소. 변경되는 경우, 표준 유형의 태스크를 이용할 수 있습니다. - RecaptchaV2Task.


리캡챠 V2 예시
태스크 객체
프로퍼티 | 유형 | 필수 | 목적 |
---|---|---|---|
type | 스트링 | 예 | RecaptchaV2TaskProxyless 태스크 유형의 이전 이름: NoCaptchaTaskProxyless. 영구적으로 지원되며 코드를 업데이트할 필요가 없습니다. |
websiteURL | 스트링 | 예 | 타겟 웹페이지 주소. 웹사이트의 어디에든지, 심지어 고객 페이지에도 위치할 수 있습니다. 저희 작업자는 이 부분을 다루지 않지만, 대신에 이 페이지 방문을 시뮬레이션합니다. |
websiteKey | 스트링 | 예 | 리캡챠 웹사이트 키. this 기사에서 찾는 방법을 알아보세요. |
recaptchaDataSValue | 스트링 | 아니요 | 'data-s' 매개변수 값. 리캡챠 구글 웹사이트에만 적용됩니다. |
isInvisible | 불린 | 아니요 | 리캡챠가 비공개인지 지정하세요. 이렇게 하시면 작업자를 위한 적절한 위젯이 나타납니다. |
예시 요청
CURL
curl -i -H "Accept: application/json" \
-H "Content-Type: application/json" \
-X POST -d '{
"clientKey":"YOUR_API_KEY_HERE",
"task":
{
"type":"RecaptchaV2TaskProxyless",
"websiteURL":"http://mywebsite.com/recaptcha/test.php",
"websiteKey":"6Lc_aCMTAAAAABx7u2N0D1XnVbI_v6ZdbM6rYf16"
},
"softId": 0
}' https://api.anti-captcha.com/createTask
PHP
<?php
//git clone git@github.com:AdminAnticaptcha/anticaptcha-php.git
include("anticaptcha.php");
include("recaptchaV2proxyless.php");
$api = new RecaptchaV2Proxyless();
$api->setVerboseMode(true);
//your anti-captcha.com account key
$api->setKey("YOUR_API_KEY_HERE");
//target website address
$api->setWebsiteURL("http://makeawebsitehub.com/recaptcha/test.php");
//recaptcha key from target website
$api->setWebsiteKey("6LfI9IsUAAAAAKuvopU0hfY8pWADfR_mogXokIIZ");
//optional custom parameter which Google made for their search page Recaptcha v2
//$api->setDataSValue("'data-s' token from Google Search");
//Specify softId to earn 10% commission with your app.
//Get your softId here: https://anti-captcha.com/clients/tools/devcenter
$api->setSoftId(0);
//create task in API
if (!$api->createTask()) {
$api->debout("API v2 send failed - ".$api->getErrorMessage(), "red");
return false;
}
$taskId = $api->getTaskId();
//wait in a loop for max 300 seconds till task is solved
if (!$api->waitForResult(300)) {
echo "could not solve captcha\n";
echo $api->getErrorMessage()."\n";
} else {
$gResponse = $api->getTaskSolution();
echo "\n";
echo "your recaptcha token: $gResponse\n\n";
}
Python
#pip3 install anticaptchaofficial
from anticaptchaofficial.recaptchav2proxyless import *
solver = recaptchaV2Proxyless()
solver.set_verbose(1)
solver.set_key("YOUR_API_KEY_HERE")
solver.set_website_url("https://website.com")
solver.set_website_key("SITE_KEY")
#set optional custom parameter which Google made for their search page Recaptcha v2
#solver.set_data_s('"data-s" token from Google Search results "protection"')
# Specify softId to earn 10% commission with your app.
# Get your softId here: https://anti-captcha.com/clients/tools/devcenter
solver.set_soft_id(0)
g_response = solver.solve_and_return_solution()
if g_response != 0:
print "g-response: "+g_response
else:
print "task finished with error "+solver.error_code
NodeJS
//npm install @antiadmin/anticaptchaofficial
//https://github.com/AdminAnticaptcha/anticaptcha-npm
const ac = require("@antiadmin/anticaptchaofficial");
//set API key
ac.setAPIKey('YOUR_API_KEY_HERE');
//Specify softId to earn 10% commission with your app.
//Get your softId here: https://anti-captcha.com/clients/tools/devcenter
ac.setSoftId(0);
//set optional custom parameter which Google made for their search page Recaptcha v2
//ac.settings.recaptchaDataSValue = '"data-s" token from Google Search results "protection"'
ac.solveRecaptchaV2Proxyless('http://DOMAIN.COM', 'WEBSITE_KEY')
.then(gresponse => {
console.log('g-response: '+gresponse);
console.log('google cookies:');
console.log(ac.getCookies());
})
.catch(error => console.log('test received error '+error));
C#
//git clone git@github.com:AdminAnticaptcha/anticaptcha-csharp
using System;
using Anticaptcha_example.Api;
using Anticaptcha_example.Helper;
using Newtonsoft.Json.Linq;
namespace Anticaptcha_example
{
internal class Program
{
private static void Main() {
DebugHelper.VerboseMode = true;
var api = new RecaptchaV2Proxyless
{
ClientKey = "YOUR_API_KEY_HERE",
WebsiteUrl = new Uri("http://makeawebsitehub.com/recaptcha/test.php"),
WebsiteKey = "6LfI9IsUAAAAAKuvopU0hfY8pWADfR_mogXokIIZ",
// Specify softId to earn 10% commission with your app.
// Get your softId here:
// https://anti-captcha.com/clients/tools/devcenter
SoftId = 0
};
if (!api.CreateTask())
DebugHelper.Out("API v2 send failed. " + api.ErrorMessage, DebugHelper.Type.Error);
else if (!api.WaitForResult())
DebugHelper.Out("Could not solve the captcha.", DebugHelper.Type.Error);
else
DebugHelper.Out("Result: " + api.GetTaskSolution().GRecaptchaResponse, DebugHelper.Type.Success);
}
}
}
Java
//git clone git@github.com:AdminAnticaptcha/anticaptcha-java.git
package com.anti_captcha;
import com.anti_captcha.Api.RecaptchaV2Proxyless;
import com.anti_captcha.Helper.DebugHelper;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Iterator;
import java.util.concurrent.ThreadLocalRandom;
public class Main {
public static void main(String[] args) throws InterruptedException, MalformedURLException, JSONException {
DebugHelper.setVerboseMode(true);
RecaptchaV2Proxyless api = new RecaptchaV2Proxyless();
api.setClientKey("YOUR_API_KEY_HERE");
api.setWebsiteUrl(new URL("http://makeawebsitehub.com/recaptcha/test.php"));
api.setWebsiteKey("6LfI9IsUAAAAAKuvopU0hfY8pWADfR_mogXokIIZ");
//Specify softId to earn 10% commission with your app.
//Get your softId here: https://anti-captcha.com/clients/tools/devcenter
api.setSoftId(0);
if (!api.createTask()) {
DebugHelper.out(
"API v2 send failed. " + api.getErrorMessage(),
DebugHelper.Type.ERROR
);
} else if (!api.waitForResult()) {
DebugHelper.out("Could not solve the captcha.", DebugHelper.Type.ERROR);
} else {
DebugHelper.out("Result: " + api.getTaskSolution().getGRecaptchaResponse(), DebugHelper.Type.SUCCESS);
}
}
}
반응 예시
JSON(오류 없음)
{
"errorId": 0,
"taskId": 7654321
}
JSON(오류 있음)
{
"errorId": 1,
"errorCode": "ERROR_KEY_DOES_NOT_EXIST",
"errorDescription": "Account authorization key not found in the system"
}
솔루션을 불러오세요.
메소드 getTaskResult을(를) 이용하여 솔루션을 요청하세요. 첫 요청을 하기 이전에 5초 정도 작업자에게 시간을 주세요. 작업자가 아직 바쁘다면, 3초 후에 다시 시도하세요.
태스크 솔루션 객체
프로퍼티 | 유형 | 목적 |
---|---|---|
gRecaptchaResponse | 스트링 | 타겟 웹사이트의 제출 양식과 상호작용하는 데 필요한 토큰 스트링 |
cookies | 배열 | 리캡챠를 푸는 데 이용되었던 쿠키의 선택적인 배열. google.com 도메인과 하위 도메인에만 적용됨. |
반응 예시
JSON(오류 없음)
{
"errorId":0,
"status":"ready",
"solution":
{
"gRecaptchaResponse":"3AHJ_VuvYIBNBW5yyv0zRYJ75VkOKvhKj9_xGBJKnQimF72rfoq3Iy-DyGHMwLAo6a3"
},
"cost":"0.001500",
"ip":"46.98.54.221",
"createTime":1472205564,
"endTime":1472205570,
"solveCount":"0"
}