NeuroCaptcha

Tipo di task

Cloudflare Challenge

CloudflareChallengeTaskproxy proprio

Si inviano i parametri della pagina e si riceve un token pronto all’uso, nello stesso formato di risposta di tutti gli altri tipi.

Con proxy proprio: il task viene risolto tramite il proxy indicato, quindi il token corrisponde all’IP del proxy. Le credenziali del proxy vengono eliminate dopo la risoluzione.

Prezzo

1,20 USDper 1000 task

0,0012 USD per task

Ottieni la chiave API

Metriche in tempo reale, 24 h

Le metriche in tempo reale per questo tipo compariranno sulla pagina di stato dopo il lancio.

Parametri del task

ParametroTipoobbligatorioParametri del task
typestringobbligatorioCloudflareChallengeTask
websiteURLstringobbligatorioURL completo della pagina con il captcha.
cookiesstringfacoltativoCookie del sito di destinazione nel formato key1=value1; key2=value2.
userAgentstringfacoltativoUser-Agent con cui risolvere; usare lo stesso quando si invia il token.
proxyTypestringobbligatoriohttp, socks4 o socks5.
proxyAddressstringobbligatorioIndirizzo IP o host del proxy (solo indirizzi pubblici).
proxyPortintegerobbligatorioPorta del proxy.
proxyLoginstringfacoltativoLogin del proxy, se richiede l’autenticazione.
proxyPasswordstringfacoltativoPassword del proxy. Viene eliminata dopo la risoluzione del task.

Esempio

import time
import requests

API = "https://"
KEY = "YOUR_API_KEY"

# 1. create a task: the price is held, not charged
task = requests.post(f"{API}/createTask", json={
    "clientKey": KEY,
    "task": {
        "type": "CloudflareChallengeTask",
        "websiteURL": "https://example.com/",
        "proxyType": "http",
        "proxyAddress": "203.0.113.10",
        "proxyPort": 8080,
        "proxyLogin": "user",
        "proxyPassword": "pass",
    },
}).json()
if task["errorId"]:
    raise RuntimeError(task["errorCode"])

# 2. poll the result (or pass "callbackUrl" and get a signed webhook)
while True:
    time.sleep(3)
    res = requests.post(f"{API}/getTaskResult",
                        json={"clientKey": KEY, "taskId": task["taskId"]}).json()
    if res["errorId"]:
        raise RuntimeError(res["errorCode"])
    if res["status"] == "ready":
        print(res["solution"])
        break

Altri tipi di task