Как автоматизировать решение hCaptcha в Puppeteer (JavaScript)
В этом примере показано, как автоматизировать решение hCaptcha с помощью JavaScript библиотеки Puppeteer. Для решения капчи в этом примере используется сервис 2captcha.com. В этом примере демонстрируется ка�� решать капчу hCaptcha, расположенную на демо странице. Для работы примера вам необходима учетная запись 2captcha.com.
Алгоритм действий для решения hCaptcha в Puppeteer:
- Открыть страницу с капчей
- Получить требуемые параметры капчи
- Отправить капчу для решения в сервис
- Использовать полученное решение(токен) на странице
№ 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.
Начать дискуссию