Как автоматизировать решение hCaptcha в Puppeteer (JavaScript)

Как автоматизировать решение hCaptcha в Puppeteer (JavaScript)

В этом примере показано, как автоматизировать решение hCaptcha с помощью JavaScript библиотеки Puppeteer. Для решения капчи в этом примере используется сервис 2captcha.com. В этом примере демонстрируется как решать капчу hCaptcha, расположенную на демо странице. Для работы примера вам необходима учетная запись 2captcha.com.

Алгоритм действий для решения hCaptcha в Puppeteer:

  1. Открыть страницу с капчей
  2. Получить требуемые параметры капчи
  3. Отправить капчу для решения в сервис
  4. Использовать полученное решение(токен) на странице

№ 1 - Открываем страницу с капчей hCaptcha

// Открываем целевую страницу await page.goto("https://2captcha.com/demo/hcaptcha?difficulty=difficult"); // Ожидаем загрузки hCaptcha await page.waitForSelector("div.h-captcha iframe");

№ 2 - Получаем требуемые параметры капчи

// Получаем параметр `sitekey` на странице const sitekey = await page.evaluate(() => { const url = document.querySelector("div.h-captcha iframe").src; const pureSiteKey = url.split("sitekey=")[1].split("&")[0]; return pureSiteKey; });

№ 3 - Отправляем капчу для решения в сервис

// Отправляем капчу для решения в сервис 2captcha const res = await solver.hcaptcha({ pageurl: "https://2captcha.com/demo/hcaptcha", sitekey: sitekey, });

№ 4 - Используем полученное решение hCaptcha на странице

// Получаем готовое решение капчи const captchaAnswer = res.data; // Используем полученное решение(токен) на странице const setAnswer = await page.evaluate((captchaAnswer) => { document.querySelector( "textarea[name='h-captcha-response']" ).style.display = "block"; document.querySelector("textarea[name='h-captcha-response']").value = captchaAnswer; }, captchaAnswer); // Нажимаем кнопку для проверки результата await page.click('button[type="submit"]');

Полный код примера для Puppeteer доступен на GitHub.

Начать дискуссию