Join And Get Free Trial!

Dodaj rozpoznawanie captcha do swoich automatyzacji za pomocą kilku linijek kodu#

logoNextCaptcha
March 29,2024

Automatycznie rozwiązuj captcha za pomocą NextCAPTCHA#

Jeśli zajmujesz się automatyzacją przeglądarki, np. przeglądaniem stron internetowych, prawdopodobnie natknąłeś się na strony internetowe, które przerywają działanie skryptów za pomocą wyzwania captcha.

Pozwól NEXTCAPTCHA zająć się rozwiązywaniem captcha#

Jeśli Twoje skrypty Lalkarza lub Dramaturga zostaną zablokowane przez uparte wykrywacze botów, warto to sprawdzić. Dzięki krótkiemu fragmentowi daje Twoim automatykom możliwość rozwiązania dowolnego captcha.

Fragment kodu

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();
Twoje skrypty nie będą musiały wykonywać żadnej dodatkowej pracy, wystarczy poczekać, aż NextCaptcha zostanie rozwiązany za pomocą naszego interfejsu API solwera mamy również pakiet SDK do rozwiązywania problemów z captcha dla Python, Go, C#. i zintegrujemy więcej języków programowania

captcha solver Python sdk: nextcaptcha-python

captcha solver Go sdk: nextcaptcha-go

captcha solver C# sdk: nextcaptcha-csharp


Skontaktuj się z nami

Email: [email protected]

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

Website: https://nextcaptcha.com/