API Eğitimleri

Node.js ve CaptchaAI ile Izgara Görüntüsü CAPTCHA'sını Çözme

Izgara görüntüsü CAPTCHA'ları, "trafik ışıklı tüm kareleri seçin" gibi bir talimat içeren 3×3 veya 4×4 ızgara sunar. Bu eğitimde bunların Node.js kullanılarak nasıl çözüleceği gösterilmektedir.CaptchaAIve Puppeteer.


Önkoşullar

Öğe Değer
CaptchaAI API anahtarı İtibarencaptchaai.com
Node.js 14+
Kütüphaneler axios, puppeteer

1. Adım: Izgara görüntüsünü yakalayın

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

const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://example.com/page-with-recaptcha');

// Switch to the reCAPTCHA challenge iframe
const frames = page.frames();
const challengeFrame = frames.find((f) => f.url().includes('recaptcha/api2/bframe'));

// Get the instruction text
const instruction = await challengeFrame.$eval(
  '.rc-imageselect-desc-no-canonical',
  (el) => el.textContent.trim()
);

// Screenshot the grid
const grid = await challengeFrame.$('.rc-imageselect-target');
await grid.screenshot({ path: 'grid.png' });

Adım 2: CaptchaAI'ye Gönderin

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

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

const form = new FormData();
form.append('key', API_KEY);
form.append('method', 'post');
form.append('grid_size', '3x3');
form.append('img_type', 'recaptcha');
form.append('instructions', instruction);
form.append('json', '1');
form.append('file', fs.createReadStream('grid.png'));

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

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

3. Adım: Çözüm için anket yapın

await sleep(5000);

let cellsToClick;
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) {
    cellsToClick = JSON.parse(pollData.request);
    console.log('Click cells:', cellsToClick);
    break;
  }
  if (pollData.request !== 'CAPCHA_NOT_READY') {
    throw new Error(pollData.request);
  }
  await sleep(5000);
}

4. Adım: Doğru kutucuklara tıklayın

const tiles = await challengeFrame.$$('.rc-imageselect-tile');

for (const cellNum of cellsToClick) {
  await tiles[cellNum - 1].click();
  await sleep(300);
}

// Click verify
await challengeFrame.click('#recaptcha-verify-button');
console.log(`Solved: clicked tiles ${JSON.stringify(cellsToClick)}`);
await browser.close();

Beklenen çıktı:

Click cells: [1, 3, 6, 9]
Solved: clicked tiles [1,3,6,9]

SSS

Bu 4×4 ızgaralarla çalışır mı?

Evet. İstek parametrelerinde grid_size'yi 4x4 olarak ayarlayın.

Puppeteer yerine Oyun Yazarı'nı kullanabilir miyim?

Evet. CaptchaAI API çağrıları aynıdır; yalnızca tarayıcı otomasyon kodu değişir.

CAPTCHA yeni görsellerle yenilenirse ne olur?

Bazı reCAPTCHA zorlukları yeni döşemeler yükler. Her turda tekrar yakalayıp göndermeniz gerekebilir.


İlgili kılavuzlar


Grid Image CAPTCHA'leri CaptchaAI → ile çözmeye başlayın

Bu makale için yorumlar devre dışı bırakılmıştır.