Join And Get Free Trial!

Agregue resolución de captcha a sus automatizaciones con unas pocas líneas de código#

logoNextCaptcha
March 29,2024

Resuelve captchas automáticamente con NextCAPTCHA#

Si realiza tareas de automatización del navegador, como el web scraping, es probable que haya encontrado sitios web que interrumpen sus scripts con un desafío captcha.

Deje que NEXTCAPTCHA se encargue de resolver su captcha#

Si tus scripts de Puppeteer o Playwright son bloqueados por detectores de robots obstinados, querrás comprobar esto. Con un breve fragmento, le brinda a sus automatizaciones la capacidad de resolver cualquier captcha.

Fragmento de código

const puppeteer= require('puppeteer');
const axios = require('axios');
const url = 'https://www.google.com/recaptcha/api2/demo';
 
async function main() {
    const browser = await puppeteer.launch({
        headless: false
    });
 
    const page = await browser.newPage();
 
    await page.goto(url, {
        waitUntil: 'networkidle0',
    });
 
    const sitekey = await page.$eval('[data-sitekey]', el => el.getAttribute('data-sitekey'));
 
    if (sitekey) {
        const task = await createCaptchaTask(url, sitekey);
        if (task) {
            const result = await getTaskResult(task.taskId);
            if (!result.errorId) {
                await page.evaluate((value) => {
 
                    const textarea = document.querySelector('#g-recaptcha-response');
                    textarea.value = value;
                }, result.solution.gRecaptchaResponse);
                await page.click('#recaptcha-demo-submit');
 
				        // Continue...
            }
        }
 
    } else {
        console.log("find sitekey error");
    }
 
};
 
async function createCaptchaTask(url, siteKey, isInvisible = false) {
    try {
        const data = await axios.post('https://api.nextcaptcha.com/createTask', {
            "clientKey": "CLIENT_KEY", // clientKey from NextCaptcha
            "task": {
                type: "RecaptchaV2TaskProxyless",
                websiteURL: url,
                websiteKey: siteKey,
                isInvisible
            }
        });
        return data.data;
    } catch (e) {
        console.error('createCaptchaTask error', e);
        return null;
    }
}
 
async function sleep(time = 500) {
    return new Promise((resolve) => {
        setTimeout(() => {
            resolve();
        }, time)
    })
}
//
async function getTaskResult(taskId, tryTimes = 60 ) {
    try {
        console.log('tryTimes', tryTimes)
        const data = await axios.post('https://api.nextcaptcha.com/getTaskResult', {
            "clientKey": "CLIENT_KEY", // clientKey from NextCaptcha
            taskId
        });
				if (data.data.status === 'processing' && tryTimes >= 0) {
            await sleep();
            return getTaskResult(taskId, tryTimes-1);
        } else if (data.data.status === 'ready') {
            return data.data;
        } else {
            if (tryTimes < 0) {
                console.error('getTaskResult out of time');
            } else {
                console.error('getTaskResult errorCode', data.data.errorCode);
                console.error('getTaskResult errorDescription', data.data.errorDescription);
                return null;
            }
        }
    } catch (e) {
        console.error('createCaptchaTask error', e.message);
        return null;
    }
}
 
main();
Sus scripts no necesitarán hacer ningún trabajo adicional, todo lo que necesita es esperar hasta que NextCaptcha se resuelva con nuestra API de resolución También tenemos el SDK de resolución de captcha para Python, Go, C#. e integraremos más lenguajes de programación

captcha solver Python sdk: nextcaptcha-python

captcha solver Go sdk: nextcaptcha-go

captcha solver C# sdk: nextcaptcha-csharp


Contáctenos

Email: [email protected]

Telegram: https://t.me/+wWJh5iON_I0xY2Vh

Website: https://nextcaptcha.com/