CoderCastrov logo
CoderCastrov
Парсер

Как я обошел защиту Cloudflare от ботов для парсинга веб-сайтов

Как я обошел защиту Cloudflare от ботов для парсинга веб-сайтов
просмотров
4 мин чтение
#Парсер

Существует новый способ обойти защиту от ботов Cloudflare для парсинга веб-сайтов: браузеры с антидетектом.

Если вы воспользуетесь поиском по запросу "обход Cloudflare", вы найдете сотни статей и репозиториев на Github, объясняющих, как обойти Cloudflare (или предлагающих решение для этого). Причина этого довольно проста: решение Cloudflare Bot Management является одним из самых мощных и наиболее используемых средств защиты от ботов в интернете.

Это так сложно?

  • Да.

Традиционные меры безопасности основаны на блокировке IP-адресов или CAPTCHA. Решение Bot Management от Cloudflare использует передовые алгоритмы машинного обучения для анализа запросов, поступающих на веб-сайт. Таким образом, оно способно естественным образом идентифицировать ботов, интерпретируя их типичные поведенческие паттерны.

Вот несколько примеров того, что боты очень вероятно будут делать:

  • делать большое количество запросов за короткий промежуток времени
  • использовать определенный тип пользовательского агента или IP-адреса
  • иметь несогласованные/подозрительные отпечатки.

Решение Bot Management от Cloudflare также сложно обойти, потому что оно постоянно обучается обнаруживать новые типы парсинговых ботов. Компания использует алгоритмы машинного обучения для обновления своих методов обнаружения, чтобы быстро идентифицировать и блокировать новые типы ботов по мере их появления.

Еще одна преграда с Cloudflare заключается в том, что это высоко настраиваемое решение. Методы, которые работают для одного веб-сайта, могут быть бесполезными для другого.

В качестве доказательства этого, в моем предыдущем посте о Cloudflare, я написал три похожих решения для трех разных веб-сайтов, но только два из них по-прежнему работают. В течение последних недель я столкнулся с проблемами при использовании Playwright с веб-сайтом Antonioli для обхода Cloudflare. Через несколько страниц я снова был заблокирован, особенно когда выполнение происходило внутри виртуальной машины на AWS.

Так что правда в том, что нет универсального решения против Cloudflare Bot Management. Однако есть решения, которые хорошо работают.

Новый подход: Антидетект браузеры для веб-парсинга

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

Что такое антидетект браузеры?

Антидетект браузеры обычно основаны на Chromium, но имеют функции, улучшающие конфиденциальность пользователя. Обычно они создают новые отпечатки, которые выглядят аутентично для веб-сайтов, защищая реальное местоположение пользователя. Вот основное отличие от классического выполнения Playwright или Selenium.

Проще говоря, используя Playwright в Chrome, сервер знает, что вы используете подлинную версию Chrome, но с машины в дата-центре - из-за отпечатка устройства. С антидетект браузером вы используете версию Chromium, настроенную на максимальную конфиденциальность.

Он настраивает сложный профиль подключения, который отправляет пользовательские отпечатки устройства. Таким образом, даже самые продвинутые движки веб-сайтов видят, что вы работаете в браузере с обычного Mac, в то время как он фактически работает с сервера. Таким образом, ваша работа защищена.

GoLogin

Мне нужно было проверить, может ли эта решение работать. Среди нескольких доступных браузеров мне нужно было выбрать один с следующими характеристиками:

  • Имеет полностью работающую бесплатную демонстрацию, чтобы протестировать мое решение.
  • Может быстро интегрироваться с Playwright, минимизируя влияние на мою рабочую среду.
  • Имеет Unix-клиент для моей рабочей среды.

Учитывая, что технически любой браузер на основе Chromium может работать с Playwright, если указан путь к исполняемому файлу следующим образом:

browser = playwrights.chromium.launch(executable_path='/opt/path_to_bin')

Я выбрал GoLogin из-за всех вышеперечисленных функций и возможности создания разных профилей (каждый с разными отпечатками), которые я мог использовать для своих экспериментов.

Конфигурация

После регистрации я создал свой первый профиль, который имитирует рабочую станцию Windows. Затем я скачал клиент браузера и исходный код на Python из их репозитория, который необходим для взаимодействия с Playwright с использованием их API.

Используя тесты на amiunique.org, мы можем увидеть различия между стандартным выполнением Chrome на моем ноутбуке Mac и выполнением с использованием пользовательского профиля Windows с помощью браузера GoLogin.

В первом случае мы видим платформу Macintel и заголовки macOS, которые, в любом случае, можно легко изменить.

Используя GoLogin, я имитирую выполнение с помощью компьютера под управлением Windows. Конечно, различий гораздо больше, чем те, которые я сделал скриншоты. Вы можете легко проверить их сами, используя код, который я поделился в репозитории The Web Scraping Club на Github, который предназначен для платных читателей.

Скачать GoLogin здесь и изучить с нашим бесплатным планом!

Этот материал любезно предоставлен мне Пьерлуиджи Винчигуэрра, экспертом по парсингу и основателем Web Scraping Club. Перейдите по этой ссылке , чтобы увидеть оригинальную публикацию.