يقدم BLS CAPTCHA شبكة من الصور مقاس 3 × 3 مع رمز تعليمات رقمي يحدد الخلايا التي سيتم تحديدها. يوضح لك هذا البرنامج التعليمي كيفية حل ملفات BLS CAPTCHA من Node.js باستخدام ملفCaptchaAIواجهة برمجة التطبيقات.
المتطلبات الأساسية
| البند | القيمة |
|---|---|
| مفتاح CaptchaAI API | منcaptchaai.com |
| Node.js | 14+ |
| مكتبة | axios (npm install axios) |
كيف يعمل BLS CAPTCHA
شبكة 3×3 مرقمة من اليسار إلى اليمين ومن الأعلى إلى الأسفل:
1 | 2 | 3
---------
4 | 5 | 6
---------
7 | 8 | 9
تحدد التعليمات الرقمية (على سبيل المثال، "664") ما يجب تحديده. تقوم CaptchaAI بإرجاع مؤشرات الخلايا المطابقة.
الخطوة 1: استخراج صور الشبكة
const axios = require('axios');
const puppeteer = require('puppeteer');
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://example.com/bls-form');
// Get instruction code
const instruction = await page.$eval('.bls-instruction', (el) => el.textContent.trim());
// Get all 9 cell image URLs and convert to base64
const cellImages = await page.$$eval('.bls-grid img', (imgs) =>
imgs.map((img) => img.src)
);
const images = [];
for (const src of cellImages) {
if (src.startsWith('data:')) {
images.push(src);
} else {
const { data } = await axios.get(src, { responseType: 'arraybuffer' });
const b64 = Buffer.from(data).toString('base64');
images.push(`data:image/png;base64,${b64}`);
}
}
الخطوة 2: أرسل إلى CaptchaAI
const API_KEY = 'YOUR_API_KEY';
const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
const params = new URLSearchParams({
key: API_KEY,
method: 'bls',
instructions: instruction,
json: '1',
});
// Add all 9 images
images.forEach((img, i) => {
params.append(`image_base64_${i + 1}`, img);
});
const { data: submitData } = await axios.post(
'https://ocr.captchaai.com/in.php',
params.toString()
);
if (submitData.status !== 1) throw new Error(submitData.request);
const taskId = submitData.request;
console.log(`Task submitted: ${taskId}`);
الخطوة 3: استطلاع للحل
await sleep(5000);
let selectedCells;
for (let i = 0; i < 30; i++) {
const { data: pollData } = await axios.get('https://ocr.captchaai.com/res.php', {
params: { key: API_KEY, action: 'get', id: taskId, json: 1 },
});
if (pollData.status === 1) {
selectedCells = JSON.parse(pollData.request);
console.log('Selected cells:', selectedCells);
break;
}
if (pollData.request !== 'CAPCHA_NOT_READY') {
throw new Error(pollData.request);
}
await sleep(5000);
}
الخطوة 4: انقر فوق الخلايا الصحيحة
// Click each identified cell
const gridCells = await page.$$('.bls-grid img');
for (const cellNum of selectedCells) {
await gridCells[cellNum - 1].click();
}
// Submit the form
await page.click('.bls-submit');
console.log(`Solved: clicked cells ${JSON.stringify(selectedCells)}`);
await browser.close();
الناتج المتوقع:
Selected cells: [1, 4, 7, 8]
Solved: clicked cells [1,4,7,8]
الأخطاء الشائعة
| خطأ | السبب | إصلاح |
|---|---|---|
ERROR_BAD_PARAMETERS |
الصور أو التعليمات المفقودة | أرسل جميع الصور التسعة ورمز التعليمات |
CAPCHA_NOT_READY |
لا تزال المعالجة | استمر في الاقتراع كل 5 ثواني |
ERROR_ZERO_BALANCE |
لا أموال | قم بتعبئة حساب CaptchaAI الخاص بك |
الأسئلة الشائعة
هل يدعم BLS CAPTCHA شبكات 4×4؟
يستخدم BLS CAPTCHA شبكات 3 × 3 (9 خلايا). بالنسبة للشبكات 4×4، استخدم طريقة صورة الشبكة بدلاً من ذلك.
ما مدى سرعة حل BLS؟
عادة 5-15 ثانية.
هل يمكنني استخدام Playwright بدلاً من Puppeteer؟
نعم. تفاعل واجهة برمجة التطبيقات (API) هو نفسه — ما عليك سوى تغيير مكالمات أتمتة المتصفح.