الحصول على ترويسات Kasada باستخدام API
اطلب KasadaTask لعنوان HTTPS الدقيق على www.ticketmaster.com، ثم استخدم الترويسات المُعادة في طلبك إلى الوجهة. تدعم Kasada المستقلة هذا المضيف حاليًا.
في هذه الصفحة
اطلب الترويسات
استخدم Python 3.10+ أو Node.js 22+ مع حزمة SDK الرسمية. ثبّت حزمة SDK من التنزيلات الرسمية.
عيّن SOLVETHREE_API_KEY إلى مفتاح API لمساحة عملك، وSOLVETHREE_PROXY إلى عنوان URL للوكيل. شغّل هذا على الخادم ليبقى مفتاح API سريًا. غيّر url إلى عنوان HTTPS المقصود على المضيف المدعوم.
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();
}تتطلب هذه الأجزاء التكميلية requests في Python أو undici في Node.js. وهي ترسل عنوان URL الدقيق من المهمة وتستبدل ترويسات المتصفح المتعارضة. احتفظ بأي ترويسات تطبيق أخرى أو بيانات جلسة تتطلبها وجهتك.
إذا استخدمت proxyCandidates، فاختر الوكيل الذي نجح باستخدام successful_proxy أو successfulProxy قبل إرسال الطلب إلى الوجهة. تعيد أمثلة الوكيل الواحد استخدام request["proxy"] في Python أو request.proxy في Node.js.
افحص استجابة الوجهة بعد الإرسال. عند ظهور 403، استخدم دليل استكشاف أخطاء Ticketmaster وإصلاحها للتحقق من الطلب الذي يُرفض.
الانتظار والأخطاء
يتولى solve() الاستعلام الدوري نيابةً عنك. لتلقي معرّف المهمة فورًا، استخدم create_task أو createTask مع مدة انتظار صفر، ثم استرجع المهمة بهذا المعرّف حتى تصل إلى ready أو failed.
عند استخدام API مباشرةً، ينتظر إنشاء Kasada حتى 75 ثانية افتراضيًا. اضبط مهلة HTTP لتتجاوز مدة الانتظار تلك، أو استخدم ?waitMs=0 واستعلم دوريًا. راجع الاستعلام الدوري عن المهام والمهل لمعرفة تسلسل الطلبات.
عند فشل مهمة، أوقف الاستعلام الدوري وافحص errorCode وerror. تُردّ رسوم الحلول الفاشلة. إذا انتهت مهلة الإنشاء، فاحتفظ بقيمة requestId والمدخلات نفسها عند استعادة المهمة؛ فقد يؤدي معرّف جديد إلى إنشاء حل آخر تُحتسب عليه رسوم.
المصادر ومرجع API
شغّل مهمتك الأولى.
ابدأ برصيد قدره $5 في مساحة العمل.