קבלת כותרות Kasada באמצעות ה-API

מאת solvethree2 דקות קריאה

בקשו 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