Решение reCAPTCHA с использованием JavaScript: Полное руководство
Решение reCAPTCHA с использованием JavaScript: Полное руководство
Nikolai Smirnov
Software Development Lead
21-Aug-2024
Хотя reCAPTCHA эффективно защищает веб-контент, она может иногда препятствовать законным действиям, таким как исследования, анализ данных или другие задачи автоматизации, связанные с соблюдением нормативных требований, которые включают взаимодействие с веб-сервисами.
Что вы узнаете
В этом блоге мы рассмотрим шаги, необходимые для решения задач reCAPTCHA с использованием JavaScript. Вы узнаете, как настроить среду разработки, использовать Puppeteer для взаимодействия с веб-страницами и реализовать решения как для reCAPTCHA v2, так и для v3. К концу этого руководства вы получите прочные знания о том, как программно решать задачи reCAPTCHA, что позволит вам интегрировать эти знания в свои проекты.
Что такое reCAPTCHA?
reCAPTCHA — это тип CAPTCHA, который помогает отличать человеческих пользователей от ботов, предлагая задачи, которые просты для людей, но сложны для машин. За годы развития reCAPTCHA претерпела изменения: от искажённого текста, который пользователи должны были ввести, до более сложных задач на основе изображений, а теперь и до почти невидимой версии, работающей в фоновом режиме, оценивающей пользователей по их поведению на сайте.
С трудом справляетесь с повторяющимися неудачами при решении раздражающих CAPTCHA?
Откройте для себя бесшовное автоматическое решение CAPTCHA с помощью технологии Capsolver AI-powered Auto Web Unblock!
Получите свой Бонусный код для лучших решений CAPTCHA: CapSolver: WEBS. После его активации вы получите дополнительный бонус в размере 5% после каждого пополнения, без ограничений.
Версии reCAPTCHA:
reCAPTCHA v2: Эта версия широко известна своей галочкой «Я не робот» и задачами на основе изображений. Она требует, чтобы пользователи нажимали на изображения или подтверждали определенные действия, что делает её эффективной для отличия людей от ботов.
reCAPTCHA v3: В отличие от v2, reCAPTCHA v3 невидима и работает в фоновом режиме. Она оценивает взаимодействие пользователя на сайте и присваивает оценку на основе вероятности того, что пользователь является ботом. Сайты могут использовать эту оценку для принятия решения о том, разрешать ли пользователю доступ или блокировать его.
reCAPTCHA Enterprise: Для бизнеса с более высокими требованиями к безопасности появилась версия reCAPTCHA Enterprise. Эта версия предоставляет расширенную защиту от сложных угроз, глубже интегрируется с мерами безопасности на уровне предприятия. Она включает улучшенный анализ рисков, настраиваемую систему оценок и лучшую масштабируемость, что делает её подходящей для организаций, работающих с конфиденциальными данными или критически важными операциями.
Почему решать reCAPTCHA с использованием JavaScript?
Для разработчиков, работающих над такими проектами, как веб-скрейпинг, автоматизированное тестирование или автоматизация форм, встреча с reCAPTCHA может стать значительным препятствием. Ручное решение reCAPTCHA каждый раз нецелесообразно в сценариях автоматизации, поэтому JavaScript приходит на помощь. Используя JavaScript, особенно с помощью таких инструментов, как Puppeteer, разработчики могут программно взаимодействовать и решать задачи reCAPTCHA.
Обычные сценарии использования:
1. Веб-скрейпинг: Извлечение данных с веб-сайтов часто включает взаимодействие с формами или страницами, защищёнными reCAPTCHA. 2. Автоматизированное тестирование: Обеспечение стабильности веб-приложений может требовать автоматизированной отправки форм или взаимодействия с CAPTCHA-защищенными страницами. 3. Автоматизация форм: Автоматизация повторяющихся задач, таких как заполнение и отправка форм, часто требует обхода CAPTCHA для завершения рабочего процесса.
Необходимые условия
Прежде чем мы погрузимся в код, существует несколько предварительных условий, которые должны быть выполнены, чтобы вы могли успешно следовать этому руководству:
Базовое понимание JavaScript: В этом руководстве предполагается, что у вас есть базовые знания JavaScript, включая знакомство с такими понятиями, как переменные, функции и асинхронное программирование.
Node.js и npm: Мы будем использовать Node.js, среду выполнения JavaScript, вместе с npm (Node Package Manager) для управления зависимостями нашего проекта. Если у вас нет установленного Node.js, вы можете скачать его с официального сайта Node.js.
Ключ API CapSolver: Для эффективного решения задач reCAPTCHA вам потребуется доступ к таким сервисам, как CapSolver, который специализируется на программном решении задач CAPTCHA. Убедитесь, что вы зарегистрировались и получили API-ключ от CapSolver для интеграции его в своё решение.
Как только вы выполните эти условия, вы будете готовы настроить среду и начать решать задачи reCAPTCHA с помощью JavaScript и CapSolver.
Шаги по решению reCAPTCHA с использованием JavaScript
URL-адрес — это адрес страницы, которая вызывает reCAPTCHA V2.
Установка библиотеки requests
bashCopy
pip install requests
Пример кода
pythonCopy
import requests
import time
from DrissionPage import ChromiumPage
# Создание экземпляра ChromiumPage
page = ChromiumPage()
# Доступ к примерной странице, вызывающей reCAPTCHA
page.get("https://www.google.com/recaptcha/api2/demo")
# TODO: Установите вашу конфигурацию
api_key = "ваш ключ API CapSolver" # Ваш API-ключ CapSolver
site_key = "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-" # Ключ сайта вашей целевой страницы
site_url = "https://www.google.com/recaptcha/api2/demo" # URL-адрес вашей целевой страницы
def capsolver():
payload = {
"clientKey": api_key,
"task": {
"type": 'ReCaptchaV2TaskProxyLess',
"websiteKey": site_key,
"websiteURL": site_url
}
}
# Отправка запроса в CapSolver для создания задачи
res = requests.post("https://api.capsolver.com/createTask", json=payload)
resp = res.json()
task_id = resp.get("taskId")
if not task_id:
print("Не удалось создать задачу:", res.text)
return
print(f"Получен taskId: {task_id} / Получение результата...")
while True:
time.sleep(3) # Задержка
payload = {"clientKey": api_key, "taskId": task_id}
# Запрос результата задачи
res = requests.post("https://api.capsolver.com/getTaskResult", json=payload)
resp = res.json()
status = resp.get("status")
if status == "ready":
return resp.get("solution", {}).get('gRecaptchaResponse')
if status == "failed" или resp.get("errorId"):
print("Решение не удалось! Ответ:", res.text)
return
def check():
# Получение решения reCAPTCHA
token = capsolver()
# Установка значения ответа reCAPTCHA
page.run_js(f'document.getElementById("g-recaptcha-response").value="{token}"')
# Установка токена во временное значение
page.run_js(
'document.getElementById("captcha-demo-form").submit();console.log("submit reCAPTCHA token success.")')
check()
Объяснение кода
Подключение библиотек: Сначала подключаем необходимые библиотеки requests, time, и DrissionPage, чтобы создать экземпляр ChromiumPage.
Создание экземпляра страницы: Мы создаём экземпляр ChromiumPage, который будет использоваться для доступа к целевой странице, где нужно решить задачу reCAPTCHA.
Запрос создания задачи: Сначала, используя API CapSolver, мы создаём задачу с ключом сайта и URL-адресом целевой страницы.
Ожидание решения задачи: После отправки задачи мы начинаем цикл ожидания, который проверяет статус задачи через каждые три секунды. Если задача готова, мы получаем токен решения.
Отправка решения: Как только мы получаем токен, он передаётся обратно на страницу с reCAPTCHA, и форма отправляется автоматически.
Заключение
Решение задач reCAPTCHA с помощью JavaScript, особенно с использованием Puppeteer и API CapSolver, значительно упрощает процесс автоматизации взаимодействия с защищёнными веб-страницами. Это руководство предоставило вам все необходимые шаги для интеграции решения reCAPTCHA в ваши проекты, обеспечивая стабильность и эффективность при работе с различными версиями reCAPTCHA.
Помните, что при использовании этих инструментов важно соблюдать все соответствующие правовые нормы и использовать решения только в законных и этичных целях.
Для получения дополнительных сведений или поддержки по этому руководству не стесняйтесь обращаться к нам.
Дисклеймер о соблюдении: Информация, представленная в этом блоге, предназначена только для справочных целей. CapSolver обязуется соблюдать все применимые законы и нормы. Использование сети CapSolver для незаконной, мошеннической или злоупотребляющей деятельности строго запрещено и будет расследовано. Наши решения для распознавания капчи улучшают пользовательский опыт, обеспечивая 100% соблюдение при помощи в решении трудностей с капчей в процессе сбора общедоступных данных. Мы призываем к ответственному использованию наших услуг. Для получения дополнительной информации, пожалуйста, посетите наши Условия обслуживания и Политику конфиденциальности.