الحصول على ترويسات Kasada باستخدام API

بقلم solvethreeمدة القراءة: 2 دقيقة

اطلب KasadaTask لعنوان HTTPS الدقيق على www.ticketmaster.com، ثم استخدم الترويسات المُعادة في طلبك إلى الوجهة. تدعم Kasada المستقلة هذا المضيف حاليًا.

في هذه الصفحة

اطلب الترويسات

استخدم Python 3.10+ أو Node.js 22+ مع حزمة SDK الرسمية. ثبّت حزمة SDK من التنزيلات الرسمية.

عيّن SOLVETHREE_API_KEY إلى مفتاح API لمساحة عملك، وSOLVETHREE_PROXY إلى عنوان URL للوكيل. شغّل هذا على الخادم ليبقى مفتاح API سريًا. غيّر url إلى عنوان HTTPS المقصود على المضيف المدعوم.

Python · ترويسات Kasada
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"])

يستدعي كلا المثالين solve، الذي ينشئ مهمة واحدة ويستعلم دوريًا حتى تصبح جاهزة أو يطلق خطأ. يرسل القسم التالي الترويسات المُعادة إلى الوجهة.

تتضمن المهمة type وurl وproxy واحدًا وrequestId اختياريًا. لا تُضف حقولًا مخصصة لهوية المتصفح؛ استخدم الهوية المُعادة في الحل.

أرسل الترويسات المُعادة إلى الوجهة

نتيجة Kasada · ترويسات توضيحية
{
  "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 من النتيجة، واستخدم الوكيل نفسه المستخدم للحل:

Python requests · إرسال ترويسات Kasada المُعادة
# 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)

تتطلب هذه الأجزاء التكميلية 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 والمدخلات نفسها عند استعادة المهمة؛ فقد يؤدي معرّف جديد إلى إنشاء حل آخر تُحتسب عليه رسوم.

شغّل مهمتك الأولى.

ابدأ برصيد قدره $5 في مساحة العمل.

إنشاء مساحة عمل
الحصول على ترويسات Kasada باستخدام API · solvethree