Integrations

Axios + CaptchaAI: حل CAPTCHA بدون متصفح

لا تحتاج إلى Puppeteer أو Playwright في كل سيناريو يتضمن CAPTCHA. باستخدام Axios وCaptchaAI، يمكنك إرسال المهام واسترجاع النتائج عبر HTTP فقط، وهو ما يكفي لعدد كبير من حالات التكامل الخلفي أو الأدوات الخفيفة.

المتطلبات

المتطلبات التفاصيل
Node.js 16+
أكسيوس 1.x
مفتاح CaptchaAI API احصل على واحدة هنا
npm install axios

عميل CaptchaAI

const axios = require("axios");

class CaptchaAI {
  constructor(apiKey) {
    this.apiKey = apiKey;
    this.baseUrl = "https://ocr.captchaai.com";
  }

  async submit(params) {
    params.key = this.apiKey;
    const resp = await axios.get(`${this.baseUrl}/in.php`, { params });
    const text = resp.data;

    if (!String(text).startsWith("OK|")) {
      throw new Error(`Submit failed: ${text}`);
    }
    return String(text).split("|")[1];
  }

  async poll(taskId, timeoutMs = 300000) {
    const deadline = Date.now() + timeoutMs;
    const params = { key: this.apiKey, action: "get", id: taskId };

    while (Date.now() < deadline) {
      await new Promise((r) => setTimeout(r, 5000));

      const resp = await axios.get(`${this.baseUrl}/res.php`, { params });
      const text = String(resp.data);

      if (text === "CAPCHA_NOT_READY") continue;
      if (text.startsWith("OK|")) return text.split("|").slice(1).join("|");
      throw new Error(`Solve failed: ${text}`);
    }
    throw new Error(`Timeout after ${timeoutMs}ms for task ${taskId}`);
  }

  async solve(params, timeoutMs = 300000) {
    const taskId = await this.submit(params);
    return this.poll(taskId, timeoutMs);
  }

  async getBalance() {
    const resp = await axios.get(`${this.baseUrl}/res.php`, {
      params: { key: this.apiKey, action: "getbalance" },
    });
    return parseFloat(resp.data);
  }
}

module.exports = CaptchaAI;

حل reCAPTCHA v2 (بدون متصفح)

const CaptchaAI = require("./captchaai");

async function main() {
  const solver = new CaptchaAI(process.env.CAPTCHAAI_API_KEY);

  // Solve the CAPTCHA without opening any browser
  const token = await solver.solve({
    method: "userrecaptcha",
    googlekey: "6Le-wvkS...",
    pageurl: "https://example.com/login",
  });

  // Submit form with the token using Axios
  const resp = await axios.post("https://example.com/login", {
    username: "user",
    password: "pass",
    "g-recaptcha-response": token,
  });

  console.log(`Login response: ${resp.status}`);
}

main().catch(console.error);

حل Turnstile (بدون متصفح)

const token = await solver.solve({
  method: "turnstile",
  sitekey: "0x4AAAAA...",
  pageurl: "https://example.com",
});

// Submit with Turnstile token
const resp = await axios.post("https://example.com/api/verify", {
  "cf-turnstile-response": token,
  data: "payload",
});

حل صورة CAPTCHAs

const fs = require("fs");

const imageBuffer = fs.readFileSync("captcha.png");
const imageB64 = imageBuffer.toString("base64");

const text = await solver.solve({
  method: "base64",
  body: imageB64,
});

console.log(`CAPTCHA text: ${text}`);

// Submit form with solved text
const resp = await axios.post("https://example.com/verify", {
  captcha: text,
  other_data: "value",
});

سير عمل القشط الكامل

قم بكشط صفحة محمية بـ CAPTCHA بدون أي متصفح:

const CaptchaAI = require("./captchaai");
const axios = require("axios");
const cheerio = require("cheerio");

async function scrapeProtectedPage(url) {
  const solver = new CaptchaAI(process.env.CAPTCHAAI_API_KEY);

  // Step 1: Fetch the page
  const page = await axios.get(url);
  const $ = cheerio.load(page.data);

  // Step 2: Extract the reCAPTCHA site key
  const siteKey = $(".g-recaptcha").attr("data-sitekey");
  if (!siteKey) {
    console.log("No CAPTCHA found, returning page content");
    return page.data;
  }

  // Step 3: Solve the CAPTCHA
  console.log(`Solving CAPTCHA for ${url}...`);
  const token = await solver.solve({
    method: "userrecaptcha",
    googlekey: siteKey,
    pageurl: url,
  });

  // Step 4: Submit form with token
  const formAction = $("form").attr("action") || url;
  const formData = {};

  $("form input").each((_, el) => {
    const name = $(el).attr("name");
    const value = $(el).attr("value") || "";
    if (name) formData[name] = value;
  });
  formData["g-recaptcha-response"] = token;

  const result = await axios.post(formAction, new URLSearchParams(formData), {
    headers: { "Content-Type": "application/x-www-form-urlencoded" },
  });

  return result.data;
}

scrapeProtectedPage("https://example.com/data")
  .then((data) => console.log("Success:", typeof data))
  .catch(console.error);

الحل المتزامن

async function solveBatch(urls, siteKey) {
  const solver = new CaptchaAI(process.env.CAPTCHAAI_API_KEY);

  const promises = urls.map(async (url) => {
    try {
      const token = await solver.solve({
        method: "userrecaptcha",
        googlekey: siteKey,
        pageurl: url,
      });
      return { url, token, error: null };
    } catch (error) {
      return { url, token: null, error: error.message };
    }
  });

  const results = await Promise.all(promises);

  const solved = results.filter((r) => r.token);
  console.log(`Solved ${solved.length}/${urls.length}`);
  return results;
}

استكشاف الأخطاء وإصلاحها

خطأ السبب إصلاح
AxiosError: getaddrinfo ENOTFOUND مشكلة DNS تحقق من اتصال الشبكة
Submit failed: ERROR_WRONG_USER_KEY مفتاح API غير صالح التحقق من المفتاح من لوحة التحكم
Submit failed: ERROR_ZERO_BALANCE لا أموال إضافة رصيد إلى الحساب
تم رفض الرمز المميز بواسطة الموقع المستهدف انتهت صلاحية الرمز المميز إرسال الرمز المميز في غضون 60 ثانية

الأسئلة الشائعة

لماذا تتجنب المتصفحات لحل اختبار CAPTCHA؟

تستهلك المتصفحات ذاكرة وصول عشوائي (RAM) تتراوح من 200 إلى 500 ميجابايت لكل مثيل. يستخدم HTTP النقي مع CaptchaAI حوالي 5 ميغابايت. يعد هذا أكثر كفاءة بنسبة 40 إلى 100 مرة للأتمتة من جانب الخادم.

متى لا أزال بحاجة إلى متصفح؟

عندما يتطلب الموقع عرض JavaScript للمحتوى. بالنسبة لاختبارات CAPTCHA على وجه التحديد، لن تحتاج أبدًا إلى متصفح - يتولى CaptchaAI حلها عن بُعد.

هل يمكنني استخدام الجلب بدلاً من Axios؟

نعم. يتضمن Node.js 18+ fetch الأصلي. معلمات CaptchaAI API هي نفسها.

أدلة ذات صلة

النقاشات (0)

لا توجد تعليقات بعد.

مقالات ذات صلة

Comparisons مقارنة أفضل خدمات حل CAPTCHA في 2025
مقارنة عملية حول مقارنة أفضل خدمات حل CAPTCHA في 2025 تركّز على الفروق في التكلفة والدقة وزمن الاستجابة وسهولة الدمج، مع التأكيد على أن الحكم النهائي يجب أن يعت...

مقارنة عملية حول مقارنة أفضل خدمات حل CAPTCHA في 2025 تركّز على الفروق في التكلفة والدقة وزمن الاستجابة وسهولة...

Apr 22, 2026
DevOps & Scaling النشر باللونين الأزرق والأخضر للبنية الأساسية لحل اختبار CAPTCHA
دليل تشغيلي لـ النشر باللونين الأزرق والأخضر للبنية الأساسية لحل اختبار CAPTCHA يغطّي قرارات البنية، والاعتمادية، والمراقبة، وأنماط الأتمتة المناسبة لتشغيل Capt...

دليل تشغيلي لـ النشر باللونين الأزرق والأخضر للبنية الأساسية لحل اختبار CAPTCHA يغطّي قرارات البنية، والاعتماد...

Apr 25, 2026
DevOps & Scaling حل CAPTCHA بدون خوادم باستخدام AWS Lambda وCaptchaAI
دليل تشغيلي لـ حل CAPTCHA بدون خوادم باستخدام AWS Lambda وCaptcha AI يغطّي قرارات البنية، والاعتمادية، والمراقبة، وأنماط الأتمتة المناسبة لتشغيل Captcha AI في ب...

دليل تشغيلي لـ حل CAPTCHA بدون خوادم باستخدام AWS Lambda وCaptcha AI يغطّي قرارات البنية، والاعتمادية، والمراق...

Apr 20, 2026