API-Tutorials

Lösen Sie BLS CAPTCHA mit Node.js und CaptchaAI

BLS CAPTCHA präsentiert ein 3×3-Raster von Bildern mit einem numerischen Anweisungscode, der angibt, welche Zellen ausgewählt werden sollen. Dieses Tutorial zeigt Ihnen, wie Sie BLS CAPTCHAs aus Node.js mithilfe von lösenCaptchaAIAPI.


Voraussetzungen

Artikel Wert
CaptchaAI API-Schlüssel Auscaptchaai.com
Node.js 14+
Bibliothek axios (npm install axios)

So funktioniert BLS CAPTCHA

Ein 3×3-Raster, nummeriert von links nach rechts und von oben nach unten:

1 | 2 | 3
---------
4 | 5 | 6
---------
7 | 8 | 9

Eine numerische Anweisung (z. B. „664“) gibt an, was ausgewählt werden soll. CaptchaAI gibt die Indizes übereinstimmender Zellen zurück.


Schritt 1: Rasterbilder extrahieren

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}`);
  }
}

Schritt 2: An CaptchaAI senden

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}`);

Schritt 3: Umfrage zur Lösung

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);
}

Schritt 4: Klicken Sie auf die richtigen Zellen

// 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();

Erwartete Ausgabe:

Selected cells: [1, 4, 7, 8]
Solved: clicked cells [1,4,7,8]

Häufige Fehler

Fehler Ursache Beheben
ERROR_BAD_PARAMETERS Es fehlen Bilder oder Anweisungen Senden Sie alle 9 Bilder und den Anweisungscode
CAPCHA_NOT_READY Noch in Bearbeitung Rufen Sie weiterhin alle 5 Sekunden ab
ERROR_ZERO_BALANCE Keine Mittel Laden Sie Ihr CaptchaAI-Konto auf

FAQ

Unterstützt BLS CAPTCHA 4×4-Raster?

BLS CAPTCHA verwendet 3×3 Gitter (9 Zellen). Verwenden Sie für 4×4-Raster stattdessen die Rasterbildmethode.

Wie schnell löst BLS?

Normalerweise 5–15 Sekunden.

Kann ich Playwright anstelle von Puppeteer verwenden?

Ja. Die API-Interaktion ist dieselbe – ändern Sie einfach die Browser-Automatisierungsaufrufe.


Verwandte Leitfäden


Beginnen Sie mit der Lösung von BLS CAPTCHAs mit CaptchaAI →

Diskussionen (0)

Noch keine Kommentare.