HCaptchaTask: แก้ HCaptcha ผ่านพร็อกซี่
นักพัฒนา hCaptcha เรียก Captcha นี้ว่า "การแทนที่แบบดรอปอินสำหรับ Recaptcha" เราพยายามสร้างสิ่งเดียวกันใน API ของเรา ดังนั้นคุณสมบัติของงานจึงเหมือนกับใน RecaptchaV2Task ยกเว้นคุณสมบัติ "ประเภท"
ประกาศสำคัญเกี่ยวกับค่า User-Agent ก่อนหน้านี้ คุณสามารถระบุ User-Agent ของคุณเองสำหรับงานต่างๆ ได้ แต่สิ่งนี้ได้เปลี่ยนไปแล้ว แต่เราจัดเตรียม user-agent ของพนักงานซึ่งคุณต้องใช้เพื่อหลีกเลี่ยง Hcaptcha เวอร์ชันที่ต้องชำระเงิน สิ่งนี้เปลี่ยนไปเนื่องจากในปัจจุบันแทบจะเป็นไปไม่ได้เลยที่จะเลียนแบบ User-agent ของมนุษย์ต่างดาวในแพลตฟอร์มอื่น เช่น Chrome user-agent ใน Firefox เบราว์เซอร์มีส่วนเสริมจำนวนมากนอกเหนือจาก navigator.userAgent ซึ่งเป็นของแพลตฟอร์มใดแพลตฟอร์มหนึ่งโดยเฉพาะ

ตัวอย่างแคปช่า
อ็อบเจ็กต์งาน
คุณสมบัติ | ประเภท | จำเป็น | วัตถุประสงค์ | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
type | สตริง | ใช่ | HCaptchaTask | ||||||||||||||||||||||||
websiteURL | สตริง | ใช่ | ที่อยู่ของหน้าเว็บเป้าหมายสามารถอยู่ที่ใดก็ได้ในเว็บไซต์ แม้ในพื้นที่สมาชิก คนงานของเราไม่ได้ไปยังที่นั่น แต่จะจำลองการเข้าชมแทน | ||||||||||||||||||||||||
websiteKey | สตริง | ใช่ | hCaptcha sitekey | ||||||||||||||||||||||||
proxyType | สตริง | ใช่ | ประเภทของพร็อกซี่ http - พร็อกซี่ http/https ทั่วไป socks4 - พร็อกซี่ socks4 socks5 - พร็อกซี่ socks5 | ||||||||||||||||||||||||
proxyAddress | สตริง | ใช่ | ที่อยู่ IP ของพร็อกซี่ ipv4/ipv6 ไม่มีชื่อโฮสต์หรือที่อยู่ IP จากเครือข่ายใกล้ๆ กัน | ||||||||||||||||||||||||
proxyPort | จำนวนเต็ม | ใช่ | พอร์ตพร็อกซี่ | ||||||||||||||||||||||||
proxyLogin | สตริง | ไม่ | ล็อกอินสำหรับพร็อกซี่ที่ต้องได้รับอนุญาต (พื้นฐาน) | ||||||||||||||||||||||||
proxyPassword | สตริง | ไม่ | รหัสผ่านพร็อกซี่ | ||||||||||||||||||||||||
คัดค้าน ให้ใช้ User-Agent จากพนักงานของเราซึ่งส่งคืนโดยเมธอด "getTaskResult" | |||||||||||||||||||||||||||
isInvisible | บูลีน | ไม่ | ระบุว่าจะซ่อน Hcaptcha หรือไม่ สิ่งนี้จะแสดงวิดเจ็ตที่เหมาะสมสำหรับพนักงานของเรา | ||||||||||||||||||||||||
enterprisePayload | อ็อบเจ็กต์ | ไม่ | พารามิเตอร์เพิ่มเติมที่เราจะใช้เพื่อแสดงวิดเจ็ต Hcaptcha สำหรับเวอร์ชัน Enterprise
|
ตัวอย่างคำขอ
CURL
curl -i -H "Accept: application/json" \
-H "Content-Type: application/json" \
-X POST -d '{
"clientKey":"YOUR_API_KEY_HERE",
"task":
{
"type":"HCaptchaTask",
"websiteURL":"https://hcaptcha.com/",
"websiteKey":"00000000-0000-0000-0000-000000000000",
"proxyType":"http",
"proxyAddress":"8.8.8.8",
"proxyPort":8080,
"proxyLogin":"proxyLoginHere",
"proxyPassword":"proxyPasswordHere",
"isInvisible": false,
},
"softId": 0
}' https://api.anti-captcha.com/createTask
# Enterprise version:
curl -i -H "Accept: application/json" \
-H "Content-Type: application/json" \
-X POST -d '{
"clientKey":"YOUR_API_KEY_HERE",
"task":
{
"type":"HCaptchaTask",
"websiteURL":"https://hcaptcha.com/",
"websiteKey":"00000000-0000-0000-0000-000000000000",
"proxyType":"http",
"proxyAddress":"8.8.8.8",
"proxyPort":8080,
"proxyLogin":"proxyLoginHere",
"proxyPassword":"proxyPasswordHere",
"isInvisible": false,
"enterprisePayload": {
"rqdata": "rqdata value from target website",
"sentry": true
}
},
"softId": 0
}' https://api.anti-captcha.com/createTask
PHP
<?php
//git clone git@github.com:AdminAnticaptcha/anticaptcha-php.git
include("anticaptcha.php");
include("hcaptcha.php");
$api = new HCaptcha();
$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");
//hcaptcha key from target website
$api->setWebsiteKey("6LfI9IsUAAAAAKuvopU0hfY8pWADfR_mogXokIIZ");
//proxy access parameters
// DO NOT USE PURCHASED/RENTED PROXIES ON PROXY SERVICES!!!
// THEY WILL NOT WORK!
// USE ONLY PROXIES YOU INSTALL YOURSELF ON YOUR OWN SERVER OR FAST VPS
// USE PROPER PROXY SOFTWARE LIKE SQUID !
// INSTALLATION INSTRUCTIONS:
// https://anti-captcha.com/apidoc/articles/how-to-install-squid
$api->setProxyType("http");
$api->setProxyAddress("8.8.8.8");
$api->setProxyPort(1234);
//optional login and password
$api->setProxyLogin("login");
$api->setProxyPassword("password");
//Specify softId to earn 10% commission with your app.
//Get your softId here: https://anti-captcha.com/clients/tools/devcenter
$api->setSoftId(0);
//optional invisible Hcaptcha flag
//$api->setIsInvisible();
//set Enterprise parameters this way:
//$api->setEnterprisePayload([
// "rqdata" => "somerqdata",
// "sentry" => true
//]);
//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 hcaptcha token: $gResponse\n\n";
}
Python
#pip3 install anticaptchaofficial
from anticaptchaofficial.hcaptchaproxyon import *
solver = hCaptchaProxyon()
solver.set_verbose(1)
solver.set_key("YOUR_API_KEY_HERE")
solver.set_website_url("https://hcaptcha.com/")
solver.set_website_key("00000000-0000-0000-0000-000000000000")
solver.set_proxy_address("PROXY_ADDRESS")
solver.set_proxy_port(1234)
solver.set_proxy_login("proxylogin")
solver.set_proxy_password("proxypassword")
solver.set_user_agent("Mozilla/5.0")
solver.set_cookies("test=true")
# tell API that Hcaptcha is invisible
#solver.set_is_invisible(1)
# set here parameters like rqdata, sentry, apiEndpoint, endpoint, reportapi, assethost, imghost
#solver.set_enterprise_payload({
# "rqdata": "rq data value from target website",
# "sentry": True
#})
# 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 Hcaptcha Enterprise payload if any
const enterprisePayload = {
"rqdata": "rqdata from target website",
"sentry": true
//etc
}
//if it is non-Enteprise, set to null
//const enterprisePayload = null;
//set to true if you want us to render it in invisible mode
const isInvisible = false;
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);
ac.solveHCaptchaProxyOn('http://DOMAIN.COM',
'WEBSITE_KEY',
'http', //http, socks4, socks5
'PROXY_ADDRESS',
'PROXY_PORT',
'PROXY_LOGIN',
'PROXY_PASSWORD',
'',
'some=cookies',
enterprisePayload,
isInvisible)
.then(gresponse => {
console.log('g-response: '+gresponse);
})
.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 HCaptcha
{
ClientKey = "YOUR_API_KEY_HERE",
WebsiteUrl = new Uri("http://makeawebsitehub.com/recaptcha/test.php"),
WebsiteKey = "6LfI9IsUAAAAAKuvopU0hfY8pWADfR_mogXokIIZ",
ProxyAddress = "xxx.xx.xx.xx",
ProxyPort = 1234,
ProxyLogin = "login",
ProxyPassword = "password",
UserAgent = "Opera 6.0",
// Specify softId to earn 10% commission with your app.
// Get your softId here:
// https://anti-captcha.com/clients/tools/devcenter
SoftId = 0
};
// use to set invisible mode
//api.IsInvisible = true
// use to set Hcaptcha Enterprise parameters like rqdata, sentry, apiEndpoint, endpoint, reportapi, assethost, imghost
//api.EnterprisePayload.Add("rqdata", "rqdata value from target website");
//api.EnterprisePayload.Add("sentry", "true");
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.HCaptcha;
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);
HCaptcha api = new HCaptcha();
api.setClientKey("API_KEY_HERE");
api.setWebsiteUrl(new URL("http://makeawebsitehub.com/HCaptcha/test.php"));
api.setWebsiteKey("6LfI9IsUAAAAAKuvopU0hfY8pWADfR_mogXokIIZ");
// proxy access parameters
// DO NOT USE PURCHASED/RENTED PROXIES WITH PROXY SERVICES!!!
// THEY WILL NOT WORK!
// USE ONLY PROXIES YOU INSTALL YOURSELF ON YOUR OWN SERVER OR FAST VPS
// USE PROPER PROXY SOFTWARE LIKE SQUID !
// INSTALLATION INSTRUCTIONS:
// https://anti-captcha.com/apidoc/articles/how-to-install-squid
api.setProxyType(NoCaptcha.ProxyTypeOption.HTTP);
api.setProxyAddress("xx.xxx.xx.xx");
api.setProxyPort(8282);
api.setProxyLogin("login");
api.setProxyPassword("password");
// uncomment to tell API that HCaptcha is in invisible mode
// api.setIsInvisible(true);
// uncomment and use for HCaptcha Enterprise version if you need to set parameters like rqdata, sentry, apiEndpoint, endpoint, reportapi, assethost, imghost
// JSONObject enterprisePayload = new JSONObject();
// try {
// enterprisePayload.put("rqdata", "rqdata from the target website");
// enterprisePayload.put("sentry", Boolean.TRUE);
// enterprisePayload.put("apiEndpoint", "https://...");
// } catch (Exception e) {
// DebugHelper.out("JSON error: "+e.getMessage(), DebugHelper.Type.ERROR);
// return;
// }
// api.setEnterprisePayload(enterprisePayload);
//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 | สตริง | สตริงโทเค็นที่จำเป็นสำหรับการโต้ตอบกับการส่งแบบฟอร์มบนเว็บไซต์เป้าหมาย |
respKey | สตริง | ผลลัพธ์ของฟังก์ชัน "window.hcaptcha.getRespKey()" เมื่อพร้อมใช้งาน บางเว็บไซต์ใช้สำหรับการตรวจสอบเพิ่มเติม |
userAgent | สตริง | User-Agent ของเบราว์เซอร์ของผู้ปฏิบัติงาน ใช้เมื่อคุณส่งโทเค็นตอบกลับ |
ตัวอย่างการตอบกลับ
JSON ที่ไม่มีข้อผิดพลาด
{
"errorId":0,
"status":"ready",
"solution":
{
"gRecaptchaResponse":"3AHJ_VuvYIBNBW5yyv0zRYJ75VkOKvhKj9_xGBJKnQimF72rfoq3Iy-DyGHMwLAo6a3......",
"respKey":"E0_eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJkYXRhIjoiQk5vb1JuZ0FPSHBCM2EyWURSSC......",
"userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Firefox/102.0"
},
"cost":"0.001500",
"ip":"46.98.54.221",
"createTime":1472205564,
"endTime":1472205570,
"solveCount":"0"
}