API로 Kasada 헤더 가져오기
www.ticketmaster.com의 정확한 HTTPS URL에 대해 KasadaTask를 요청한 다음, 반환된 헤더를 대상 요청에 사용하세요. 독립형 Kasada는 현재 해당 호스트를 지원합니다.
이 페이지의 내용
헤더 요청
공식 SDK와 함께 Python 3.10+ 또는 Node.js 22+를 사용하세요. 공식 다운로드에서 SDK를 설치하세요.
SOLVETHREE_API_KEY를 워크스페이스 API 키로, SOLVETHREE_PROXY를 프록시 URL로 설정하세요. API 키가 노출되지 않도록 서버에서 실행하세요. url을 지원되는 호스트에서 사용하려는 HTTPS URL로 변경하세요.
import os
from uuid import uuid4
from solvethree import Solvethree
client = Solvethree(os.environ["SOLVETHREE_API_KEY"])
request = {
'type': 'KasadaTask',
'url': 'https://www.ticketmaster.com/',
"proxy": os.environ["SOLVETHREE_PROXY"],
"requestId": str(uuid4()),
}
result = client.solve(request, timeout=180)
headers = result["solution"]["headers"]
print("Ready task:", result["id"])import { randomUUID } from 'node:crypto';
import { Solvethree } from '@solvethree/sdk';
const client = new Solvethree({ apiKey: process.env.SOLVETHREE_API_KEY });
const request = {
type: 'KasadaTask',
url: 'https://www.ticketmaster.com/',
proxy: process.env.SOLVETHREE_PROXY,
requestId: randomUUID(),
};
const result = await client.solve(request, { timeoutMs: 180_000 });
const headers = result.solution.headers;
console.log('Ready task:', result.id);두 예제 모두 solve를 호출합니다. 이 함수는 작업 하나를 생성하고 준비될 때까지 폴링하거나 오류를 발생시킵니다. 다음 섹션에서는 반환된 헤더를 대상으로 전송합니다.
작업에는 type, url, 단일 proxy, 선택 사항인 requestId를 제공합니다. 사용자 지정 브라우저 식별 필드를 추가하지 말고 해결 결과에 반환된 식별 정보를 사용하세요.
반환된 헤더를 대상으로 전송
{
"id": "example-kasada",
"status": "ready",
"solution": {
"headers": {
"x-kpsdk-ct": "EXAMPLE_HEADER_VALUE",
"x-kpsdk-cd": "EXAMPLE_HEADER_VALUE"
},
"userAgent": "EXAMPLE_USER_AGENT",
"secChUa": "EXAMPLE_CLIENT_HINTS"
}
}solution.headers 객체 전체를 복사하세요. 결과에서 User-Agent와 sec-ch-ua를 설정하고 해결에 사용한 것과 동일한 프록시를 사용하세요.
# Continue after the Kasada solve. Install requests separately: pip install requests.
import requests
solution = result["solution"]
headers = {name: value for name, value in solution["headers"].items()
if name.lower() not in {"user-agent", "sec-ch-ua"}}
headers.update({"User-Agent": solution["userAgent"], "sec-ch-ua": solution["secChUa"]})
response = requests.get(
request["url"], headers=headers,
proxies={"http": request["proxy"], "https": request["proxy"]},
timeout=30, allow_redirects=False,
)
print("Target HTTP status:", response.status_code)// Continue after the Kasada solve. Install undici separately: npm install undici@7.
import { fetch, ProxyAgent } from 'undici';
const targetHeaders = new Headers(result.solution.headers);
targetHeaders.set('user-agent', result.solution.userAgent);
targetHeaders.set('sec-ch-ua', result.solution.secChUa);
const dispatcher = new ProxyAgent(request.proxy);
try {
const response = await fetch(request.url, {
dispatcher, headers: targetHeaders, redirect: 'manual',
signal: AbortSignal.timeout(30_000),
});
console.log('Target HTTP status:', response.status);
await response.arrayBuffer();
} finally {
await dispatcher.close();
}이 후속 코드에는 Python의 requests 또는 Node.js의 undici가 필요합니다. 작업의 정확한 URL로 요청을 보내고 충돌하는 브라우저 헤더를 교체합니다. 대상에 필요한 다른 애플리케이션 헤더나 세션 데이터는 유지하세요.
proxyCandidates를 사용하는 경우 대상 요청을 보내기 전에 successful_proxy 또는 successfulProxy로 성공한 프록시를 선택하세요. 단일 프록시 예제는 Python에서 request["proxy"], Node.js에서 request.proxy를 재사용합니다.
제출 후 대상 응답을 확인하세요. 403이 반환되면 Ticketmaster 문제 해결 가이드에서 어떤 요청이 거부되는지 확인하세요.
대기 및 오류
solve()가 폴링을 처리합니다. 작업 ID를 즉시 받으려면 대기 시간을 0으로 설정해 create_task 또는 createTask를 사용한 다음, 상태가 ready 또는 failed가 될 때까지 해당 ID를 조회하세요.
원시 API에서 Kasada 생성 요청은 기본적으로 최대 75초 동안 대기합니다. HTTP 시간 초과를 이 대기 시간보다 길게 설정하거나 ?waitMs=0을 사용하고 폴링하세요. 요청 순서는 작업 폴링 및 시간 초과를 참조하세요.
작업이 실패하면 폴링을 중지하고 errorCode와 error를 확인하세요. 실패한 해결 요청은 환불됩니다. 생성 요청이 시간 초과되면 복구 시 동일한 requestId와 입력값을 유지하세요. 새 ID를 사용하면 과금되는 해결 요청이 하나 더 생성될 수 있습니다.
출처 및 API 레퍼런스
첫 작업을 실행하세요.
워크스페이스 크레딧 $5로 시작하세요.