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)
Beteiligen Sie sich an der Unterhaltung
Melden Sie sich an, um Ihre Meinung zu teilen.
AnmeldenNoch keine Kommentare.