перейти к содержанию

Как обойти обнаружение Cloudflare с помощью Selenium

Вы ищете способ обойти обнаружение Cloudflare при кодировании своего бота на Python? Тогда вы на правильной странице. В статье ниже представлено руководство о том, как обойти Cloudflare с помощью Python и Selenium.

Веб-боты, в том числе веб-скребки, сильно продвинулись за эти годы. И давайте смотреть правде в глаза; веб-сайты также становятся умнее в обнаружение бот-трафика. Одно из изменений, которое заставляет разработчиков ботов попотеть, — это Антиботовые системы Cloudflare.

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

Обычные пользователи Интернета сталкиваются с небольшой задержкой и получают сообщение «Проверка браузера перед доступом…». сообщение на экране. Но это в конце концов пройдет. Однако, если вы используете бота, вам, скорее всего, не будет разрешен доступ. Некоторые разработчики думают, что использование браузерного автоматизатора, такого как Selenium, тоже поможет им.

К сожалению, Cloudflare создан для обнаружения таких атак. Итак, что вы делаете, и как вы обойти обнаружение Cloudflare как разработчик ботов, использующий Python и Cloudflare? В этой статье вам будет показано, как обойти обнаружение Cloudflare с помощью Python и Selenium.


Обзор селена

Обзор селена

Веб-драйвер Selenium — это автоматизатор браузера. Что вы с этим сделаете, зависит от вас. Одни используют его для тестирования сайта, другие — для ботинга и парсинга. Это универсальный инструмент, поскольку вы можете использовать его на нескольких популярных языках программирования, таких как Python, Java и NodeJS.

Он также поддерживает популярные браузеры, такие как Chrome, Firefox, Edge и Internet Explorer. Здесь мы сосредоточимся на поддержке Python. В Python Selenium является основным инструментом для создания ботов и парсинга веб-сайтов, которые зависят от рендеринга JavaScript. Подобные Scrapy, Requests и Beautifulsoup для этого не подходят.

Однако Selenium эффективен только против веб-сайтов с базовыми системами защиты от спама. С помощью прокси, очистки файлов cookie, установки случайных задержек и некоторых других методов вы можете избежать обнаружения и блокировки.

Но когда веб-сайт защищен системами защиты от спама, такими как Cloudflare и Akamai, Selenium становится неэффективным. Это связано с тем, что существуют указатели по умолчанию, которые системы защиты от спама используют для обнаружения ботов, которые есть у инструмента Selenium по умолчанию.


Как обойти Cloudflare с помощью Selenium и Python

При правильных шагах Selenium может легко обойти Cloudflare. Прежде чем перейти к этому, давайте посмотрим, насколько хорошо Cloudflare работает при обнаружении ботов, написанных с помощью Python и Selenium. Для этого мы напишем простого бота, который пытается получить доступ rayobyte.com.

Обзор Rayobyte

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


Шаг 1: Установите необходимые инструменты

Чтобы написать бота на Python, у вас должен быть установлен Python. Для этого проекта вам также необходимо установить Selenium.

  • Питон

Обзор Python

В большинстве систем Python уже установлен. Однако установлена ​​версия Python 2, которая используется по устаревшим причинам. Вам нужно будет установить Python 3, чтобы использовать Selenium. Посетить официальная страница загрузки Python чтобы он был установлен в вашей системе. Он доступен для Windows, macOS и Linux. Чтобы убедиться, что установка прошла успешно, выполните приведенную ниже команду в командной строке.

«питон — версия»
  • Селен

Селеновые инструменты

Selenium — полноценный инструмент для ботов. Он автоматизирует браузер, позволяя вам получать доступ к страницам, нажимать кнопки, прокручивать и даже заполнять формы и выполнять любые действия, которые вы можете выполнить вручную. Selenium — это сторонний инструмент.

Чтобы он работал, вам необходимо установить его, а затем загрузить и поместить в путь конкретный драйвер для браузера, который вы хотите автоматизировать.

В этом руководстве мы будем использовать Chrome, так как это самый популярный браузер.

Чтобы установить Selenium, запустите

«pip установить селен»

команду в командной строке. После завершения загрузки вы можете посетить страницу загрузки веб-драйвера Chrome. С

проверьте версию Chrome, которая у вас есть, и загрузите драйвер специально для вашей версии Chrome. Если вы скачаете версию другой версии, она не будет работать.

После загрузки разархивируйте содержимое в папку. Эта папка будет рабочей папкой для этого проекта.


Шаг 2: Отправить запрос на веб-сайт без обходного трюка

Наш целевой веб-сайт rayobyte.com. Мы напишем скрипт, который будет отправлять запрос на этот веб-сайт и видеть ответ, который мы получим.

Ниже приведен код. Это довольно просто. Тот, который требует больше строк кода, на самом деле имеет код для обхода Cloudflare.

Используйте приведенный ниже код в своем любимом Python IDLE. В моем случае я использую Pycharm, который на данный момент является лучшим IDLE на рынке — хотя это спорно. Основная проблема с ним в том, что он платный.

из selenium.webdriver import Chrome browser = Chrome() browser.get("https://rayobyte.com")

Приведенный выше код запустит браузер Chrome в вашей системе и попытается получить доступ к домашней странице веб-сайта Rayobyte.

Однако вместо доступа к странице он просто зациклится и останется на странице проверки Cloudflare. Ниже скриншот того, как выглядит страница.

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

Как вы уже видели, Selenium сам по себе не может быть использован для обхода Cloudflare. Если вы хотите обойти Cloudflare, вы должны использовать некоторые приемы. Следующий шаг покажет вам, как использовать тот же Selenium и Python для обхода Cloudflare.


Шаг 3: Использование плагина для обхода Cloudflare

использование плагина для обхода Cloudflare

Как видно из вышеизложенного, Cloudflare определяет скрипты Selenium как ботов. Использование прокси вам в этом случае не поможет. Вам нужны другие методы.

Лучший способ обойти Cloudflare с помощью Selenium и Python — использовать библиотеку, известную как Необнаруженный ChromeDriver. Вы можете установить это с помощью

«pip install undetected-chromedriver»

Этот плагин работает, только если вы хотите управлять/автоматизировать Chrome. В настоящее время возможности автоматизации других браузеров отсутствуют. Если у вас установлена ​​эта библиотека, все, что вам нужно сделать, это заменить класс браузера по умолчанию в Selenium этим, и все готово.

Ниже приведен фрагмент кода, показывающий, как правильно использовать необнаруженный ChromeDriver для обхода Cloudflare.

импортировать undetected_chromedriver как uc из selenium.webdriver.support.ui import WebDriverWait driver = uc.Chrome(use_subprocess=True) wait = WebDriverWait(driver, 20) driver.get("https://rayobyte.com")

Просто используя библиотеку undetected-chromedriver, вы увидите, что можете избежать обнаружения Cloudflare. Это позволит вам автоматизировать свои задачи или даже без проблем собирать данные в Интернете.


Место прокси для обхода Cloudflare

Место прокси для обхода Cloudflare

Если вы посмотрите на код выше, то увидите, что прокси не использовались во всем процессе. Теперь вы начинаете задаваться вопросом, нужны ли вам прокси для обхода Cloudflare. Причина этого проста — мы отправляем только один запрос. Если вам нужно отправить всего несколько запросов, вам не нужно использовать для этого прокси.

Однако, если вы будете отправлять много запросов, как это делает большинство ботов, вам необходимо использовать прокси.

Это связано с тем, что, как и в большинстве систем защиты от ботов, отслеживание IP-адресов по-прежнему является одной из основных частей службы Cloudflare. И когда он получает слишком много запросов с одного и того же IP, не имеет значения, есть ли след бота или нет; такой IP-адрес будет считаться подозрительным, и поэтому дальнейшие запросы будут заблокированы.

Мы рекомендуем вам использовать резидентные прокси, чтобы обойти Cloudflare. Некоторые из лучших поставщиков прокси для них включают Bright Data, Smartproxy и Soax. Если вам не нужно поддерживать сеансы, использование ротационных прокси от этих провайдеров лучше всего подходит для обхода Cloudflare.


Часто задаваемые вопросы

В. Защищают ли прокси от блокировки Cloudflare?

Нет, это не так. Вы можете увидеть, что некоторые прокси позиционируют себя как прокси, чтобы обойти Cloudflare. На земле все наоборот. Одни только прокси не защитят вас от блокировки Cloudflare. Вам нужно использовать инструменты, которые могут имитировать обычные пользовательские браузеры, и именно здесь вступает в действие необнаруженный ChromeDriver.

Прокси-серверы необходимы, когда вам нужно отправить много запросов через Cloudflare, а неиспользование прокси-серверов может привести к срабатыванию их системы отслеживания и блокировки IP-адресов. Прокси-серверы нужны во многих случаях, но они не единственные инструменты, которые вам нужны, чтобы избежать обхода Cloudflare.

В. Насколько эффективно Cloudflare предотвращает появление ботов?

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

Согласно имеющимся данным, веб-сайты, защищенные Cloudflare, отмечают снижение количества запросов на 65% до установки Cloudflare. Это отличная работа, которую Cloudflare делает прямо сейчас. Это также помогает веб-сайтам загружаться быстрее и использовать меньшую пропускную способность. Однако с помощью правильных методов и инструментов вы все равно можете обойти его и сделать менее эффективным.

Системы защиты от ботов, такие как Cloudflare, защищают веб-сайты от DDoS-атак и других форм спама. Обход их не является незаконным, даже если веб-сайты настраивают их для защиты своих систем и баз данных.

Однако то, что вы делаете после их обхода, может привести к проблемам с законом. Если вам нужно только автоматизировать свои задачи, не нанося никакого вреда сайту, заваливая его запросами, то вы все еще в рамках закона.

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


Заключение

Как разработчик ботов, системы защиты от ботов, такие как Cloudflare, — это одни из кошмаров, с которыми вам предстоит столкнуться, поскольку они могут вас расстроить. Особенно это актуально, если у вас нет опыта их обхода.

Как новичок, вы можете подумать, что использование Selenium — это простой выход, поскольку Selenium автоматизирует браузеры и отображает JS.

Тем не менее, Cloudflare, похоже, завладела ботами на основе Selenium. С помощью необнаруженного инструмента ChromeDriver, описанного в статье, вы сможете без проблем обойти его.

Присоединяйтесь к беседе

Ваш электронный адрес не будет опубликован. Обязательные поля помечены * *