С постоянным развитием технологий интернет-безопасности, Cloudflare представила механизм проверки Turnstile. Это бесклеевой метод проверки, предназначенный для обеспечения бесперебойной работы пользователей при эффективной блокировке вредоносного трафика. Однако для разработчиков, использующих инструменты автоматизации и технологии веб-скрапинга, введение Turnstile, несомненно, повысило сложность обхода таких проверок.
К счастью, используя облачный сервис Browserless от Nstbrowser и инструменты автоматизации, такие как Puppeteer, разработчики могут имитировать поведение реального пользователя для успешного обхода проверки Cloudflare Turnstile и продолжать эффективно выполнять задачи по сбору данных. В этой статье подробно описывается, как работает Cloudflare Turnstile, его влияние на веб-скрапинг и как использовать сервис Browserless от Nstbrowser для решения этой проблемы.
Cloudflare Turnstile — это новый тип механизма проверки, предназначенный для замены традиционного CAPTCHA. Он различает пользователей-людей и автоматизированный трафик с помощью бесклеевого процесса проверки, уменьшая нагрузку на взаимодействие с пользователем.
Хотя этот механизм более удобен для обычных пользователей, он значительно увеличивает сложность для ботов и инструментов автоматизации обхода проверки.
Введение Cloudflare Turnstile создает несколько проблем для приложений веб-скрапинга:
Для разработчиков, которым необходимо собирать большие объемы данных или выполнять задачи автоматизации, эти проблемы могут значительно снизить показатели успешности и эффективность задач.
Используя облачный сервис Browserless от Nstbrowser и инструменты автоматизации, такие как Puppeteer, разработчики могут беспрепятственно обходить механизм проверки Cloudflare Turnstile. Ниже приведены стратегии и шаги по реализации для решения этих проблем:
Облачный сервис Browserless от Nstbrowser — это высокопроизводительное решение для headless-браузеров, специально разработанное для обработки сложных анти-ботовых механизмов, таких как Turnstile.
Установка Puppeteer:
npm install puppeteer-core
Регистрация и вход в Nstbrowser:
Посетите официальный веб-сайт Nstbrowser и создайте учетную запись.
Получение API-ключа:
При написании бизнес-логики с помощью Puppeteer вам не нужно беспокоиться о блокировке ваших запросов Cloudflare Turnstile. Облачный сервис Browserless от Nstbrowser автоматически выполнит проверку, что позволит разработчикам сосредоточиться на своей кодовой логике.
Ниже приведен полный пример скрипта:
import puppeteer from 'puppeteer-core';
const API_KEY = "ваш api ключ"; // required
const HOST = 'wss://less.nstbrowser.io';
const config = {
proxy: 'ваш прокси',
headless: true,
};
const query = new URLSearchParams({
"x-api-key": API_KEY, // required
"config": JSON.stringify(config),
});
const browserWSEndpoint = `${HOST}/connect?${query.toString()}`;
(async () => {
const browser = await puppeteer.connect({
browserWSEndpoint: browserWSEndpoint,
defaultViewport: null,
});
try {
const page = await browser.newPage();
await page.goto('https://www.scrapingcourse.com/login/cf-turnstile', { waitUntil: 'domcontentloaded' });
// Wait for turnstile to unlock successfully
await page.waitForFunction(() => {
return window.turnstile && window.turnstile.getResponse();
});
await page.screenshot({ path: 'turnstile-solved.png' });
} catch (e) {
console.error(e);
} finally {
await browser.close();
}
})();
Вы также можете протестировать код непосредственно в функции Playground в меню Browserless в клиенте Nstbrowser.
Просто добавьте следующий код в Playground, и он автоматически установит соединение Browserless:
const page = await browser.newPage();
await page.goto('https://www.scrapingcourse.com/login/cf-turnstile', {
waitUntil: 'domcontentloaded'
});
const token = await page.waitForFunction(() => {
return window.turnstile && window.turnstile.getResponse();
});
console.info("Turnstile solved token:", token);
Это руководство предоставляет комплексное решение для обхода Cloudflare Turnstile с использованием сервиса Browserless от Nstbrowser и Puppeteer, позволяя разработчикам эффективно преодолевать трудности в современном веб-скрапинге.