UNLOCK API
Własne zadanie (Imperva, Temu i inne)

Własne zadanie (Imperva, Temu i inne)

Jak wysłać zadanie Własne zadanie (Imperva, Temu i inne) do UNLOCK API przez createTask lub in.php: nazwy typów zadań, wszystkie parametry, obiekt solution, pola proxy i przykłady kodu w 7 językach.
Cena
$0.90 $0.0009 za zadanie
Wysyłasz
class (Imperva, Temu, HUNT, tspd, Basilisk i inne) i jego metadata
Otrzymujesz
Wartości zwracane przez dany class

Przegląd i cena

Nazwy typu zadania

Ten typ ma jedną nazwę.
CustomTask

Obiekt zadania

type
StringWymagane
Nazwa typu zadania. Wielkość liter nie ma znaczenia. CustomTask
class
StringWymagane
Które zabezpieczenie rozwiązać, na przykład Imperva lub Temu.
websiteURL
StringOpcjonalne
Pełny adres strony, na której pojawia się CAPTCHA, zaczynający się od http:// lub https://.
metadata
ObjectOpcjonalne
Dodatkowe wartości potrzebne dla wybranej class, jako obiekt.
userAgent
StringOpcjonalne
User-Agent przeglądarki używany przy rozwiązywaniu. Wyślij ten sam, gdy przesyłasz odpowiedź.

Pola niewymienione tutaj są przekazywane do rozwiązującego bez zmian.

Żądanie

POST /createTask
{
  "clientKey": "YOUR_API_KEY",
  "task": {
    "type": "CustomTask",
    "class": "Imperva",
    "websiteURL": "https://example.com/login",
    "metadata": {
      "incapsulaScriptUrl": "_Incapsula_Resource?SWJIYLWA=...",
      "incapsulaCookie": "incap_ses_..."
    }
  }
}

Obiekt solution

Zwracany w solution, gdy status ma wartość ready.
data
Object
Wartości odpowiedzi dla wybranej class.
POST /getTaskResult
{
  "errorId": 0,
  "taskId": 1001,
  "status": "ready",
  "solution": {
    "data": {
      "...": "..."
    }
  },
  "cost": "0.0009",
  "createTime": 1791640000,
  "endTime": 1791640014,
  "solveCount": 1
}

Przykłady kodu

import time, requests

API = "https://unlock-api.com"
KEY = "YOUR_API_KEY"

task = requests.post(f"{API}/createTask", json={
    "clientKey": KEY,
    "task": {
      "type": "CustomTask",
      "class": "Imperva",
      "websiteURL": "https://example.com/login",
      "metadata": {
        "incapsulaScriptUrl": "_Incapsula_Resource?SWJIYLWA=...",
        "incapsulaCookie": "incap_ses_..."
      }
    }
}).json()
if task["errorId"]:
    raise SystemExit(task["errorCode"])

for _ in range(60):   # 60 x 5 s = the 5 minute task limit
    time.sleep(5)
    r = requests.post(f"{API}/getTaskResult", json={"clientKey": KEY, "taskId": task["taskId"]}).json()
    if r["errorId"]:
        raise SystemExit(f"{r['errorCode']}: {r.get('errorDescription', '')}")   # failed tasks are refunded
    if r["status"] == "ready":
        print(r["solution"])
        break
else:
    raise SystemExit("timed out")

Metoda formularza in.php

To samo zadanie przez klasyczne żądanie formularza. res.php zwraca odpowiedź jako tekst.
in.php, res.php
curl -s "https://unlock-api.com/in.php" -d "key=YOUR_API_KEY&method=incapsula&pageurl=https://example.com/login&json=1"
# {"status":1,"request":"1001"}

curl -s "https://unlock-api.com/res.php?key=YOUR_API_KEY&action=get&id=1001&json=1"
# {"status":0,"request":"CAPCHA_NOT_READY"}  then  {"status":1,"request":"ANSWER"}

API formularzy: in.php i res.php