API-Tutorials

Bild-CAPTCHA mit Node.js und CaptchaAI lösen

Bild-CAPTCHAs zeigen verzerrten Text an, den Benutzer eingeben müssen. Sie erscheinen auf Regierungsseiten, alten Formularen und Registrierungsseiten.CaptchaAIliest das Bild und gibt den Text zurück. Diese Anleitung zeigt, wie man es von Node.js aus macht.


Voraussetzungen

Artikel Wert
CaptchaAI API-Schlüssel Auscaptchaai.com
Node.js 14+
Bibliotheken axios, fs
Bildformat JPG, PNG oder GIF (100 Byte – 100 KB)

Methode A: Base64-Übermittlung

const axios = require('axios');
const fs = require('fs');

const API_KEY = 'YOUR_API_KEY';
const sleep = (ms) => new Promise((r) => setTimeout(r, ms));

// Read and encode the image
const imageB64 = fs.readFileSync('captcha.png').toString('base64');

// Submit to CaptchaAI
const { data: submitData } = await axios.post('https://ocr.captchaai.com/in.php', null, {
  params: {
    key: API_KEY,
    method: 'base64',
    body: imageB64,
    json: 1,
  },
});

if (submitData.status !== 1) throw new Error(submitData.request);
const taskId = submitData.request;
console.log(`Task submitted: ${taskId}`);

Methode B: Datei-Upload

const FormData = require('form-data');

const form = new FormData();
form.append('key', API_KEY);
form.append('method', 'post');
form.append('json', '1');
form.append('file', fs.createReadStream('captcha.png'));

const { data: submitData } = await axios.post('https://ocr.captchaai.com/in.php', form, {
  headers: form.getHeaders(),
});

const taskId = submitData.request;

Umfrage zum Textergebnis

await sleep(5000);

let captchaText;
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) {
    captchaText = pollData.request;
    console.log(`CAPTCHA text: ${captchaText}`);
    break;
  }
  if (pollData.request !== 'CAPCHA_NOT_READY') {
    throw new Error(pollData.request);
  }
  await sleep(5000);
}

Genauigkeitsparameter

// Digits only, 4-6 characters
const { data } = await axios.post('https://ocr.captchaai.com/in.php', null, {
  params: {
    key: API_KEY,
    method: 'base64',
    body: imageB64,
    numeric: 1,      // digits only
    min_len: 4,       // minimum length
    max_len: 6,       // maximum length
    json: 1,
  },
});
Parameter Wert Zweck
numeric 1 = Ziffern, 2 = Buchstaben Begrenzt Zeichen
min_len / max_len Ganzzahl Längenbeschränkungen
calc 1 Berechnet den mathematischen Ausdruck
regsense 1 Groß- und Kleinschreibung beachten

Vollständiges Arbeitsbeispiel

const axios = require('axios');
const puppeteer = require('puppeteer');
const fs = require('fs');

const API_KEY = 'YOUR_API_KEY';
const sleep = (ms) => new Promise((r) => setTimeout(r, ms));

async function solveImageCaptcha() {
  // 1. Load page and screenshot CAPTCHA
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto('https://example.com/register');

  const captchaEl = await page.$('#captcha-image');
  await captchaEl.screenshot({ path: 'captcha.png' });

  // 2. Encode and submit
  const imageB64 = fs.readFileSync('captcha.png').toString('base64');
  const { data: submit } = await axios.post('https://ocr.captchaai.com/in.php', null, {
    params: { key: API_KEY, method: 'base64', body: imageB64, json: 1 },
  });
  const taskId = submit.request;

  // 3. Poll for text
  await sleep(5000);
  let text;
  for (let i = 0; i < 30; i++) {
    const { data: poll } = await axios.get('https://ocr.captchaai.com/res.php', {
      params: { key: API_KEY, action: 'get', id: taskId, json: 1 },
    });
    if (poll.status === 1) { text = poll.request; break; }
    if (poll.request !== 'CAPCHA_NOT_READY') throw new Error(poll.request);
    await sleep(5000);
  }

  // 4. Type and submit
  await page.type('#captcha-input', text);
  await page.click('form [type="submit"]');
  console.log(`Solved: ${text}`);
  await browser.close();
}

solveImageCaptcha().catch(console.error);

Erwartete Ausgabe:

Solved: ABC123

Häufige Fehler

Fehler Ursache Beheben
ERROR_WRONG_FILE_EXTENSION Nicht unterstütztes Format Verwenden Sie JPG, PNG oder GIF
ERROR_TOO_BIG_CAPTCHA_FILESIZE Bild > 100 KB Zuerst komprimieren
ERROR_ZERO_CAPTCHA_FILESIZE Bild < 100 Byte Überprüfen Sie das Bild
CAPCHA_NOT_READY Wird immer noch gelöst Umfrage alle 5 Sekunden

FAQ

Kann ich Mathe-CAPTCHAs lösen?

Ja. Fügen Sie calc: 1 zu den Parametern hinzu und CaptchaAI gibt das berechnete Ergebnis zurück.

Wie melde ich falsche Lösungen?

Rufen Sie https://ocr.captchaai.com/res.php?key=KEY&action=reportbad&id=TASK_ID an, um falsche Ergebnisse zu melden.

Ist Base64 oder das Hochladen von Dateien schneller?

Die Leistung ist gleich. Base64 ist praktischer, wenn Sie das Bild bereits im Speicher haben.


Verwandte Leitfäden


Beginnen Sie mit der Lösung von Bild-CAPTCHAs mit CaptchaAI →

Diskussionen (0)

Noch keine Kommentare.