Playwright تكامل Captcha Solver

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

يتيح Death By Captcha (DBC) لسكربتات Playwright حل تحديات الكابتشا عبر API بدلاً من التفاعل اليدوي: يستخرج سكربتُك معاملات التحدٍّ من الصفحة، ثم يطلب حلاً من DBC، ويعيد حقن النتيجة في الصفحة ويتابع المسار. هذه صفحة البدء السريع: التثبيت، ونموذج قابل للتشغيل، وملاحظات المهام المدعومة.

التثبيت

Node.js:

npm install playwright deathbycaptcha-lib

Python:

pip install deathbycaptcha-official

استخدم بيانات حساب DBC في العميل. أنشئ حسابًا وراجع الأسعار والرصيد قبل تشغيل المسار.

نموذج كود: مسار رمز reCAPTCHA v2 (Node.js)، مُكيَّف من المثال الرسمي القابل للتشغيل.

const { chromium } = require('playwright');
const { HttpClient } = require('deathbycaptcha-lib');

const client = new HttpClient(process.env.DBC_USERNAME, process.env.DBC_PASSWORD);
const DEMO_URL = 'https://www.google.com/recaptcha/api2/demo';

async function solveRecaptchaV2(pageUrl, sitekey) {
  const balance = await new Promise((resolve, reject) =>
    client.get_balance((b) => (b ? resolve(b) : reject(new Error('Could not read balance')))));
  if (balance <= 0) throw new Error('No balance - top up before solving.');

  return new Promise((resolve, reject) =>
    client.decode(
      { extra: { type: 4, token_params: JSON.stringify({ googlekey: sitekey, pageurl: pageUrl }) } },
      (solution) => (solution && solution.text ? resolve(solution.text) : reject(new Error('No solution yet - retry')))
    ));
}

(async () => {
  const browser = await chromium.launch();
  const page = await browser.newPage();
  await page.goto(DEMO_URL, { timeout: 60000 });

  // 1. extract the challenge parameters
  const sitekey = await page.getAttribute('#recaptcha-demo', 'data-sitekey');

  // 2. request the solution token from DBC (type 4 = reCAPTCHA v2 token)
  const token = await solveRecaptchaV2(DEMO_URL, sitekey);

  // 3. inject the token and trigger the page callback
  await page.evaluate((t) => {
    const el = document.getElementById('g-recaptcha-response');
    if (!el) return;
    el.style.display = 'block';
    el.value = t;
    el.dispatchEvent(new Event('input', { bubbles: true }));
    el.dispatchEvent(new Event('change', { bubbles: true }));
    const cfg = window.___grecaptcha_cfg;
    if (!cfg || !cfg.clients) return;
    for (const k of Object.keys(cfg.clients)) {
      const c = cfg.clients[k];
      for (const key of Object.keys(c)) {
        const item = c[key];
        if (item && typeof item.callback === 'function') return item.callback(t);
        if (item && item.W && typeof item.W.callback === 'function') return item.W.callback(t);
      }
    }
  }, token);

  // 4. submit and wait for success
  await page.click('#recaptcha-demo-submit');
  await page.waitForSelector('.recaptcha-success', { timeout: 15000 });

  console.log('solved');
  await browser.close();
})();

النسخة الكاملة القابلة للتشغيل: examples/playwright في مستودع عميل Node.js الرسمي

سير العمل النموذجي Playwright

  1. اكتشاف نوع التحدي في تدفق أتمتة المتصفح الخاص بك.
  2. إرسال معلمات التحدي من خلال واجهة برمجة التطبيقات.
  3. أدخل الرمز/الحل الذي تم إرجاعه في التدفق المستهدف.
  4. تعامل مع إعادة المحاولة وتوجيه الفشل من خلال سياسة المهلة الواضحة.

ملاحظات المهام المدعومة

الموضوع ملاحظة
أنواع الكابتشا (API) reCAPTCHA v2 وv3 وCloudflare Turnstile وGeeTest وDataDome وكابتشا الصور/النص.
الرصيد تُدفع الحلول من رصيد الحساب؛ تحقق منه قبل فك الترميز.
إعادات المحاولة عدم عودة الحل مؤقت: أعد المحاولة بتراجع زمني كما يفعل المثال الرسمي.
API مقابل الإضافة يستخدم هذا المسار API داخل سكربتك؛ إضافة المتصفح هي المسار بدون برمجة للتصفح اليدوي.
المتصفحات المدعومة Chromium وFirefox وWebKit عبر Playwright (تم التحقق من العينة على Chromium).

اعتبارات التكامل

المنطقة لماذا يهم الممارسة الموصى بها
اتساق الوكيل يقلل من مخاطر عدم تطابق التحقق في تدفقات الرمز المميز. حافظ على مسار الحل والإرسال محاذيًا في سياق الأتمتة.
الانضباط المهلة يمنع الأكشاك في قائمة الانتظار وتشغيل CI غير المستقر. استخدم عمليات إعادة المحاولة المحدودة مع المعالجة الاحتياطية الحتمية.
معالجة خاصة بالنوع تحتاج فئات التحدي المختلفة إلى حقول حمولة مختلفة. ابدأ من صفحات نوع واجهة برمجة التطبيقات (API) وتحقق من صحة نوع واحد في كل مرة.

الخطوة التالية للتنفيذ

بالنسبة إلى طرح حل Playwright captcha، تحقق من صحة نوع واحد من رموز التحقق أولاً، ثم قم بتوسيع التغطية من خلال فحوصات الموثوقية والتسعير لحجم الإنتاج.


الحالة: OK

تعمل الخوادم بشكل كامل مع وقت استجابة أسرع من المتوسط.
  • متوسط وقت الحل
  • -- ثواني - Normal CAPTCHAs (1 دقيقة. منذ)
  • 16 ثواني - reCAPTCHA V2, V3 (1 دقيقة. منذ)
  • 15 ثواني - آحرون (1 دقيقة. منذ)
Chrome and Firefox logos
امتدادات المتصفح المتاحة

التحديثات

  1. May 13: Crypto payments got better! You can now purchase your CAPTCHAs using cryptocurrency through the Hekelet payment processor at https://deathbycaptcha.com/user-pay and receive an extra 20% FREE CAPTCHA credit with every package purchased this way.
  2. Apr 15: GitHub Updates: We’ve upgraded our libraries, expanded sample code, enhanced documentation, and added support for C++ and Go, making integration smoother than ever. Explore what’s new at github.com/deathbycaptcha!
  3. Jan 27: RESOLVED - If your email to one of our official addresses ([email protected], [email protected], or [email protected]) has bounced or you haven’t received a response, please try resending it or reach out via our Live Chat Support at https://deathbycaptcha.com/es/contact.

  4. التحديثات السابقة…

الدعم

تم تصميم نظامنا ليكون سهل الاستخدام تمامًا وسهل الاستخدام. إذا كان لديك أي مشكلة في ذلك ، ما عليك سوى مراسلتنا عبر البريد الإلكتروني على البريد الإلكتروني للدعم الفني لـ DBC com ، وسيتواصل معك أحد وكلاء الدعم في أقرب وقت ممكن.

الدعم المباشر

متاح من الاثنين إلى الجمعة (من 10 صباحًا حتى 4 مساءً بتوقيت شرق الولايات المتحدة) Live support image. Link to live support page