Решение капчи в Puppeteer

Сервис для обхода reCAPTCHA, Cloudflare Turnstile и любых других капч в Puppeteer.

Никакого риска. Оплата только за автоматические решенные капчи

Быстрый старт
Обход капчи с Puppeteer в действии

Краткое руководство: Как начать использовать анти капча 2Captcha API в Puppeteer

  • Зарегистрируйтесь на сервисе автоматического решения капчи
  • Установите Puppeteer и другие нужные пакеты
  • Скачайте архив с расширением
  • Распакуйте его в папку ./2captcha-solver в корне проекта
  • Настройте расширение
  • Запустите и активируйте расширение в Puppeteer
Как использовать расширение автоматического решения капчи с инструментом Puppeteer
Обход reCAPTCHA с помощью Puppeteer

Решение капчи в Puppeteer

Сервис 2Captcha предназначен для автоматического распознавания капч и их обхода.

Работа сервиса полностью автоматизирована. Процесс обхода заключается в следующем: используя API заказчик передает набор необходимых параметров со страницы размещения капчи в сервис, где задача решается работником. После, заказчик запрашивает набор параметров, которые необходимо передать в соответствующие поля для решения капчи на целевой странице.

Процесс обхода полностью автоматизирован.

API сервиса можно использовать для работы с Puppeteer, Selenium, Playwright.

Использование плагина "puppeteer-extra-plugin-stealth" для обхода reCAPTCHA в Puppeteer

Puppeteer логотип

Puppeteer — инструмент на Node.js для решения множества задач, требующих автоматизации браузера. Преимущества Puppeteer — простота и возможность работы в headless режиме. Факт автоматизации браузера можно скрыть используя специальные плагины. Скрытие факта автоматизации важно при парсинге, так как это позволяет скрыть следы автоматизации и больше походить на пользователя.

Использование Puppeteer с сервисом 2Captcha

Чтобы обойти капчи в Puppeteer, требуется специальный сервис решения капч.

Для обхода капчи используются следующие инструменты: "puppeteer", "puppeteer-extra" и "puppeteer-extra-plugin-stealth".

puppeteer-extra легкая оболочка для Puppeteer

puppeteer-extra-plugin-stealth дополнение к puppeteer-extra, предназначенное для скрытия следов автоматизации

Обход капчи с помощью библиотеки Puppeteer

Подробнее об автоматическом обходе капчи в Puppeteer читайте в инструкции.

Для получения подробной информации ознакомьтесь с инструкциями по обходу.

Инструкция: Как автоматически решить и обойти reCAPTCHA в Puppeteer

1. Установка компонентов

Установка Puppeteer и других необходимых пакетов:

  npm i puppeteer puppeteer-extra puppeteer-extra-plugin-stealth

2. Настройка расширения

Необходимо скачать архив с расширением, и распаковать его в папку ./2captcha-solver в корне проекта.

Расширение имеет различные настройки, включая автоматическое решение указанного типа капч, поддержку proxy, и другие настройки. Настройки доступны в файле ./common/config.js. Для добавления настройки автоматического решения reCAPTCHA V2, необходимо открыть файл ./common/config.js и изменить значение поля autoSolveRecaptchaV2 на true.
Обязательной настройкой является добавление своего API key, остальные настройки опциональные.

Далее необходимо выполнить настройку расширения:

  1. Указать свой API ключ в файле настроек расширения ./common/config.js. В поле apiKey напишите свой ключ. Значение своего API ключа можно посмотреть на странице.
    Пример: apiKey: "8080629c1221fdd82m8080000ff0c99c"

  2. Отключаем открытие страницы настроек расширения после установки. Для этого в файле ./manifest.json удаляем следующие строки:

"options_ui": {
    "page": "options/options.html",
    "open_in_tab": true
},

3. Автоматизация браузера

Запуск и инициализация расширения в Puppeteer:

const puppeteer = require('puppeteer-extra');
const StealthPlugin = require('puppeteer-extra-plugin-stealth');
const { executablePath } = require('puppeteer'); 

(async () => {
  const pathToExtension = require('path').join(__dirname, '2captcha-solver');
  puppeteer.use(StealthPlugin())
  const browser = await puppeteer.launch({
    headless: false,
    args: [
      `--disable-extensions-except=${pathToExtension}`,
      `--load-extension=${pathToExtension}`,
    ],
    executablePath: executablePath()
  });

  const [page] = await browser.pages()
})();

3.1 Переход на страницу

Открытие необходимой страницы, и отправка капчи.

С помощью page.goto() мы переходим на необходимую страницу. Далее необходимо отправить капчу для решения, это можно сделать вручную или автоматически.

В нашем примере мы будем отправлять капчу вручную, для этого ждем пока отобразится кнопка расширения с CSS селектором '.captcha-solver', после этого нажимаем на эту кнопку. После нажатия на кнопку, капча отправится в сервис для решения.

// переходим по указанному адресу
await page.goto('https://2captcha.com/demo/recaptcha-v2') 

// ждем пока появится элемент с CSS селектором ".captcha-solver"
await page.waitForSelector('.captcha-solver')
// кликаем по элементу с указанным селектором
await page.click('.captcha-solver')

3.2 Отслеживание решения капчи

После получения ответа от сервиса, у кнопки расширения '.captcha-solver' изменится значение дата-атрибута data-state. С помощью значения этого атрибута data-state, вы можете отслеживать состояние расширения. После решения капчи, значение этого атрибута изменится на "solved".

Доступны следующие варианты атрибута data-state:

АтрибутОписание
data-state="ready"Расширение готово к работе. Для отправки капчи необходимо нажать на кнопку.
data-state="solving"Капча решается.
data-state="solved"Капча успешно решена.
data-state="error"Капча не решена.

На этом шаге необходимо подождать пока капча будет решена, после этого значение атрибута изменится на "solved", что будет сигнализировать об успешном решении капчи. После этого шага можно выполнять необходимые действия.

//  По умолчанию waitForSelector ожидает в течение 30 секунд, но этого времени обычно не достаточно, поэтому указываем значение timeout вручную вторым параметром. Значение timeout указывается в "ms".
await page.waitForSelector(`.captcha-solver[data-state="solved"]`, {timeout: 180000})

4. Запуск

После решения капчи, переходим к выполнению необходимых на странице действий. В нашем примере мы нажмём на кнопку "Check", для проверки корректности полученного решения капчи. После успешного прохождения проверки, отобразится сообщение "Captcha is passed successfully!".

// После решения капчи выполняем необходимые действия, в нашем случае нажимаем на кнопку  "Check", для проверки решения.
await page.click("button[type='submit']")

Поздравляем, капча успешна пройдена! Полный код примера размещен на GitHub.

reCAPTCHA логотип

Обход Google reCAPTCHA в Puppeteer

reCAPTCHA блокирует выполнение скриптов по автоматизации. 2Captcha — сервис, который позволяет автоматически обходить reCAPTCHA в Puppeteer. Сервис поддерживает автоматическое решение любого типа reCAPTCHA, включая v3 и v2. Подробная информация, примеры коды по использованию API размещены на странице обход reCAPTCHA.

Подробная инструкция и примеры кода по обходу reCAPTCHA в Puppeteer размещены на странице в блоге.

Обход Google reCAPTCHA в Puppeteer
Cloudflare Turnstile логотип

Обход капчи Cloudflare Turnstile в Puppeteer

Cloudflare Turnstile капча блокирует выполнение автоматических сценариев. 2Captcha — сервис, который позволяет автоматически обходить капчу Cloudflare. Сервис поддерживает автоматическое решение любого типа Cloudflare, включая Cloudflare Challenge.

API сервиса можно использовать вместе с Puppeteer. Для обхода Cloudflare в Puppeteer необходимо использовать библиотеку для взаимодействия с API сервиса.

Обход Cloudflare Turnstile

Лучший сервис анти капча сервис для Puppeteer

Puppeteer — это инструмент для автоматизации процессов, тестирования, задач и парсинга. Капча блокирует выполнение автоматических задач. Для разгадывания капчи в Puppeteer можно использовать сервис 2Captcha. Сервис 2Captcha посредством быстрого и простого API позволяет автоматически обходить популярные виды капч. Работа по распознаванию выполняется реальными работниками.

Согласно данным CaptchaTheCat, 2Captcha — лучший сервис автоматического распознавания и обхода.

captchathecat
Использование расширения 2Captcha с Puppeteer для обхода капчи

Нужно кастомизированное решение? Попробуйте captcha solver API

Обходите капчу с помощью нашего SDK

Если автоматизация браузера с помощью Puppeteer кажется вам слишком сложной и требующей больших затрат ресурсов, всегда есть альтернативный подход: вы можете создать решение на основе запросов и использовать наши библиотеки SDK для языков программирования: Java, C#, C++, PHP, Python и Ruby. Документация на официальной странице GitHub.