Görev türleri
hCaptcha
Bu sayfa Çince sürümden makine çevirisiyle hazırlanmıştır ve hatalar içerebilir. Geçerli olan Çince sürüm sürümüdür.
hCaptcha görevi bir token (gRecaptchaResponse) döndürür. Bu token’ı, dönen userAgent (bazen respKey) ile birlikte hedef siteye gönderirseniz doğrulama geçilir. HCaptchaTaskProxyless için görev başına 30 puan (≈ $4.50 / 1k), kendi proxy’nizi kullanan HCaptchaTask için görev başına 15 puan (≈ $2.25 / 1k) ücret alınır; ikisi de asenkrondur: önce createTask, ardından her 5 saniyede bir getTaskResult çağrılır. Tanıma başarısız olursa veya zaman aşımına uğrarsa puan iadesi otomatik yapılır.
https://api.yescaptcha.com/createTaskGlobal uç noktahttps://cn.yescaptcha.com/createTaskÇin uç noktasıİstek gövdesi JSON biçimindedir; kimlik doğrulama clientKey alanıyla yapılır. Görevi hangi uç noktada oluşturduysanız sonucu da aynı uç noktada sorgulayın.
Kullanım senaryoları
Bölüm başlığı “Kullanım senaryoları”Sayfada hCaptcha’nın “Ben insanım” onay kutusu var veya hCaptcha görsel sorusu açılıyorsa. Token alıp doğrudan göndermek istiyorsanız bu sayfadaki türleri kullanın; görsellere tarayıcıda kendiniz tıklamak istiyorsanız hCaptcha görsel tanıma sayfasına bakın.
Görev türleri ve fiyatlar
Bölüm başlığı “Görev türleri ve fiyatlar”| Görev türü | Fiyat | Mod | Notlar |
|---|---|---|---|
HCaptchaTaskProxyless | $4.50 / 1k; 30 puan/görev · ¥30 / 1k | Asenkron | |
HCaptchaTaskProxylessM1 | $4.50 / 1k; 30 puan/görev · ¥30 / 1k | Asenkron | HCaptchaTaskProxyless ile aynı parametreler, farklı hat; biri yedek olarak kullanılabilir |
HCaptchaTask | $2.25 / 1k; 15 puan/görev · ¥15 / 1k | Asenkron | Kendi proxy'niz |
ABD doları fiyatları, 1 ABD doları ≈ ¥6.67 kuruyla hesaplanan tahminlerdir; görevler puan üzerinden ücretlendirilir.
HCaptchaTaskProxylessveHCaptchaTaskProxylessM1aynı parametreleri alır, hatları farklıdır; birbirinin yedeği olarak kullanılabilir.HCaptchaTask, CAPTCHA’yı kendi proxy’nizle yükler ve proxy alanlarını gerektirir; hedef site ziyaretçi IP’sini kontrol ediyorsa bunu kullanın.
İstek parametreleri
Bölüm başlığı “İstek parametreleri”| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
type | string | Evet | Görev türü; bu sayfadaki "Görev türleri ve fiyatlar" bölümüne bakın |
websiteURL | string | Evet | CAPTCHA'nın göründüğü sayfanın tam URL'si. CAPTCHA'yı gördüğünüz siteyi yazın, CAPTCHA sağlayıcısının alan adını değil |
websiteKey | string | Evet | hCaptcha site anahtarı (sitekey), genellikle UUID biçimindedir |
userAgent | string | Hayır | Tarayıcı User-Agent bilgisi. Önerilir, ancak yalnızca GET https://api.yescaptcha.com/useragent tarafından döndürülen değer kabul edilir; token'ı sonuçtaki userAgent ile gönderin |
isInvisible | boolean | Hayır | Görünmez (invisible) sürüm için true gönderin; aksi halde göndermeyin |
rqdata | string | Hayır | Enterprise hCaptcha için rqdata; bazı siteler gerektirir ve genellikle CAPTCHA'yı yükleyen istekte bulunur |
proxyType | string | Bazı türler | Proxy protokolü: http, https, socks4 veya socks5 (HCaptchaTask için zorunlu) |
proxyAddress | string | Bazı türler | Proxy IP adresi veya ana bilgisayar adı. 127.0.0.1 veya 192.168.x.x gibi yerel ya da özel adresler çalışmaz, çünkü sunucularımız bunlara erişemez (HCaptchaTask için zorunlu) |
proxyPort | integer | Bazı türler | Proxy portu (HCaptchaTask için zorunlu) |
proxyLogin | string | Hayır | Proxy kullanıcı adı, proxy kimlik doğrulaması gerektiriyorsa (yalnızca HCaptchaTask) |
proxyPassword | string | Hayır | Proxy şifresi, proxy kimlik doğrulaması gerektiriyorsa (yalnızca HCaptchaTask) |
websiteURL, CAPTCHA’nın göründüğü sayfadır, hcaptcha.com değildir.userAgentalanının doldurulması önerilir; yalnızca /useragent çağrısının döndürdüğü değer kabul edilir.rqdata: Enterprise hCaptcha kullanan siteler (örneğin bazı sosyal ve sohbet siteleri) bunu ister; genellikle CAPTCHA’yı yükleyen istekte bulunur. Normal sitelerde göndermeyin.
Parametrelerin nasıl bulunacağı için hCaptcha parametrelerini bulma sayfasına bakın.
İstek örneği
Bölüm başlığı “İstek örneği”{ "clientKey": "YOUR_CLIENT_KEY", "task": { "type": "HCaptchaTaskProxyless", "websiteURL": "https://accounts.hcaptcha.com/demo", "websiteKey": "a5f74b19-9e45-40e0-b45d-47ff91b7a6c2" }}curl -s https://api.yescaptcha.com/createTask \ -H 'Content-Type: application/json' \ -d '{ "clientKey": "YOUR_CLIENT_KEY", "task": { "type": "HCaptchaTaskProxyless", "websiteURL": "https://accounts.hcaptcha.com/demo", "websiteKey": "a5f74b19-9e45-40e0-b45d-47ff91b7a6c2" }}'
# Returns {"errorId":0,"taskId":"..."}; then poll every 5 seconds:curl -s https://api.yescaptcha.com/getTaskResult \ -H 'Content-Type: application/json' \ -d '{"clientKey": "YOUR_CLIENT_KEY", "taskId": "TASK_ID"}'import osimport time
import requests
API = "https://api.yescaptcha.com"CLIENT_KEY = os.environ["YESCAPTCHA_CLIENT_KEY"] # Read the clientKey from an environment variable
def call(method, payload): r = requests.post(f"{API}/{method}", json={"clientKey": CLIENT_KEY, **payload}, timeout=30) data = r.json() if data.get("errorId"): raise RuntimeError(f"{data.get('errorCode')}: {data.get('errorDescription')}") return data
def solve(task): task_id = call("createTask", {"task": task})["taskId"] for _ in range(36): # Poll every 5 seconds, for up to about 3 minutes time.sleep(5) result = call("getTaskResult", {"taskId": task_id}) if result.get("status") == "ready": return result["solution"] raise TimeoutError(task_id)
solution = solve({ "type": "HCaptchaTaskProxyless", "websiteURL": "https://accounts.hcaptcha.com/demo", "websiteKey": "a5f74b19-9e45-40e0-b45d-47ff91b7a6c2",})print(solution["gRecaptchaResponse"])const API = 'https://api.yescaptcha.com';const CLIENT_KEY = process.env.YESCAPTCHA_CLIENT_KEY; // Read the clientKey from an environment variable
async function call(method, payload) { const res = await fetch(`${API}/${method}`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ clientKey: CLIENT_KEY, ...payload }), }); const data = await res.json(); if (data.errorId) throw new Error(`${data.errorCode}: ${data.errorDescription}`); return data;}
async function solve(task) { const { taskId } = await call('createTask', { task }); for (let i = 0; i < 36; i++) { // Poll every 5 seconds, for up to about 3 minutes await new Promise((r) => setTimeout(r, 5000)); const result = await call('getTaskResult', { taskId }); if (result.status === 'ready') return result.solution; } throw new Error(`timeout: ${taskId}`);}
const solution = await solve({ type: "HCaptchaTaskProxyless", websiteURL: "https://accounts.hcaptcha.com/demo", websiteKey: "a5f74b19-9e45-40e0-b45d-47ff91b7a6c2",});console.log(solution.gRecaptchaResponse);Kendi proxy’nizle:
{ "clientKey": "YOUR_CLIENT_KEY", "task": { "type": "HCaptchaTask", "websiteURL": "https://accounts.hcaptcha.com/demo", "websiteKey": "a5f74b19-9e45-40e0-b45d-47ff91b7a6c2", "proxyType": "http", "proxyAddress": "proxy.example.com", "proxyPort": 8080, "proxyLogin": "user", "proxyPassword": "pass" }}{ "errorId": 0, "status": "ready", "solution": { "gRecaptchaResponse": "P1_eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...", "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/155.0.0.0 Safari/537.36", "respKey": "E0_eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..." }}| Alan | Tür | Açıklama |
|---|---|---|
gRecaptchaResponse | string | Hedef siteye gönderilecek token. Tek kullanımlıktır, yaklaşık 120 saniye geçerlidir; 60 saniye içinde kullanmanız önerilir |
userAgent | string | Token'ı almak için kullanılan User-Agent. Token'ı gönderirken bu değeri kullanın; sizin gönderdiğinizden farklı olsa bile bu değer geçerlidir |
respKey | string | Bazı sitelerin token ile birlikte istediği değer; varsa birlikte gönderin |
Göndermek için:
- Token’ı sayfadaki
h-captcha-responsealanına (varsag-recaptcha-responsealanına da) veya hedef sitenin API’sinin istediği alana yazın. - Gönderim isteğinde User-Agent olarak dönen
userAgentdeğerini kullanın. respKeydöndüyse, sitenin gereksinimine göre onu da birlikte gönderin.
İşlem sürerken {"errorId": 0, "status": "processing"} döner; 5 saniye sonra tekrar sorgulayın. Hata oluşursa errorCode değerine göre ilerleyin, bkz. Hata kodları.
Sık sorulan sorular
Bölüm başlığı “Sık sorulan sorular”Geçme oranı neden kararsız?
Bölüm başlığı “Geçme oranı neden kararsız?”hCaptcha, sitenin ayarlarına, erişim IP’sine ve tarayıcı ortamına göre karar verir; bu yüzden geçme oranı siteden siteye değişir. Dönen userAgent değerini kullandığınızdan emin olun; IP’ye duyarlı sitelerde kendi proxy’nizi kullanan HCaptchaTask türünü seçin ve gönderimi de aynı proxy üzerinden yapın; ayrıca HCaptchaTaskProxylessM1 ile karşılaştırabilirsiniz.
Token ne kadar süre geçerli?
Bölüm başlığı “Token ne kadar süre geçerli?”Tek kullanımlıktır ve yaklaşık 120 saniye geçerlidir; aldıktan sonra mümkün olan en kısa sürede göndermeniz önerilir.