Ir al contenido

Cómo omitir la detección de Cloudflare con Selenium

¿Está buscando una manera de evitar la detección de Cloudflare al codificar su bot en Python? Entonces estás en la página correcta. El siguiente artículo proporciona una guía sobre cómo eludir Cloudflare usando Python y Selenium.

bots web, incluidos raspadores web, han avanzado mucho a lo largo de los años. Y seamos realistas; los sitios web también se están volviendo más inteligentes en detección de tráfico de bots. Uno de los cambios de juego que hacen sudar a los desarrolladores de bots es el Sistemas anti-bots de Cloudflare.

Actúa como un middleware o un proxy entre los servidores web y el software del cliente. Si envía una solicitud web, tendrá que verificar que no sea spam y que sea legítima antes de permitirle pasar a su sitio web de destino.

Los usuarios habituales de Internet experimentan un poco de retraso y obtienen la opción "verificar su navegador antes de acceder...". mensaje en la pantalla. Pero esto eventualmente pasará. Sin embargo, si está utilizando un bot, lo más probable es que no se le permita el acceso. Algunos desarrolladores piensan que usar un navegador automático como Selenium también les ayudaría.

Desafortunadamente, Cloudflare también está diseñado para detectar eso. Entonces, ¿qué haces y cómo omitir la detección de Cloudflare como desarrollador de bots usando Python y Cloudflare? En este artículo, se le mostrará cómo eludir la detección de Cloudflare usando Python y Selenium.


Una descripción general de selenio

Resumen de selenio

El controlador web Selenium es un automatizador de navegador. Lo que hagas con eso depende de ti. Algunos lo usan para probar sitios, otros para bots y scraping. Es una herramienta versátil, ya que puede usarla en varios lenguajes de programación populares, como Python, Java y NodeJS.

También es compatible con navegadores populares como Chrome, Firefox, Edge e Internet Explorer. Nuestro enfoque aquí está en su compatibilidad con Python. En Python, Selenium es la principal herramienta para bots y scraping de sitios web que dependen de la representación de JavaScript. Los gustos de Scrapy, Requests y Beautifulsoup no son adecuados para eso.

Sin embargo, Selenium solo es efectivo contra sitios web con sistemas antispam básicos. Con la ayuda de proxies, borrando cookies, configurando demoras aleatorias y algunos otros métodos, puede evadir la detección y el bloqueo.

Pero cuando un sitio web está protegido por sistemas antispam como Cloudflare y Akamai, Selenium se vuelve ineficaz. Esto se debe a que hay punteros predeterminados que los sistemas antispam usan para detectar bots que tiene la herramienta Selenium predeterminada.


Cómo omitir Cloudflare usando Selenium y Python

Con los pasos correctos, Selenium puede eludir Cloudflare fácilmente. Antes de entrar en eso, echemos un vistazo a qué tan bien funciona Cloudflare en la detección de bots codificados con Python y Selenium. Para hacer esto, codificaremos un bot simple que intente acceder rayobyte.com.

Descripción general de Rayobyte

Rayobyte es un proveedor de proxy protegido por Cloudflare. Si intenta acceder a él con un navegador, su navegador debe verificarse antes de que se le conceda acceso. Usaremos esto para probar qué tan efectivo es Cloudflare y luego codificaremos otro bot que incorporará medidas para evitarlo.


Paso 1: instale las herramientas necesarias

Para codificar un bot en Python, debe tener Python instalado. Para este proyecto, también necesita tener instalado Selenium.

  • Python

Descripción general de Python

Para la mayoría de los sistemas, Python ya está instalado. Sin embargo, la versión instalada es Python 2, que se usa por motivos heredados. Deberá instalar Python 3 para usar Selenium. Visita el página oficial de descarga de Python para tenerlo instalado en su sistema. Está disponible para Windows, macOS y Linux. Para verificar si la instalación se realizó correctamente, ejecute el siguiente comando en su símbolo del sistema.

“Python —versión”
  • Selenio

Herramientas de selenio

Selenium es una herramienta de bots completa. Automatiza el navegador, permitiéndote acceder a páginas, pulsar botones, desplazarte e incluso rellenar formularios y realizar cualquier acción que puedas realizar manualmente. Selenium es una herramienta de terceros.

Para que funcione, deberá tenerlo instalado y luego descargar y colocar el controlador específico para el navegador que desea automatizar en la ruta.

Para esta guía, usaremos Chrome, ya que es el navegador más popular que existe.

Para instalar Selenium, ejecute el

"pip instalar selenio"

comando en el símbolo del sistema. Una vez que se completa la descarga, ahora puede visitar la página de descarga del controlador web de Chrome. C

Compruebe la versión de Chrome que tiene y descargue el controlador específico para su versión de Chrome. Si descargas el de otra versión, no funcionará.

Una vez descargado, descomprime el contenido en una carpeta. Esa carpeta será la carpeta de trabajo para este proyecto.


Paso 2: envíe la solicitud al sitio web sin el truco de omisión

Nuestro sitio web objetivo es rayobyte.com. Codificaremos un script que enviará una solicitud a este sitio web y verá la respuesta que obtengamos.

A continuación se muestra el código. Es bastante simple. El que requiere más líneas de código es en realidad el que tiene el código para evitar Cloudflare.

Use el código a continuación en su Python IDLE favorito. En mi caso, estoy usando Pycharm, que actualmente es el mejor IDLE del mercado, aunque esto es discutible. El principal problema es que es de pago.

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

El código anterior iniciará el navegador Chrome en su sistema e intentará acceder a la página de inicio del sitio web de Rayobyte.

Sin embargo, en lugar de acceder a la página, solo estará en bucle y permanecerá en la página de verificación de Cloudflare. A continuación se muestra una captura de pantalla de cómo se ve la página.

Si revisas bien el código, verás que no lo cerré. Esto es para permitirme ver si terminará permitiendo que la página se cargue. Pero eso nunca pasara. Debe cerrar el navegador automatizado.

Como ya ha visto, Selenium, por sí solo, no se puede usar para eludir Cloudflare. Si desea evitar Cloudflare, debe utilizar algunos trucos. El siguiente paso le mostrará cómo usar el mismo Selenium y Python para evitar Cloudflare.


Paso 3: Uso del complemento para omitir Cloudflare

usando el complemento para evitar Cloudflare

Como puede ver en lo anterior, Cloudflare detecta los scripts de Selenium como bots. El uso de proxies no le ayudará en este caso. Necesitas otros métodos.

La mejor manera de eludir Cloudflare con Selenium y python es usar una biblioteca conocida como ChromeDriver no detectado. Puede instalar esto usando el

"pip install no detectado-chromedriver"

Este complemento solo funciona si desea controlar/automatizar Chrome. Actualmente, no hay opciones para automatizar otros navegadores. Si tiene esta biblioteca instalada, todo lo que tiene que hacer es reemplazar la clase de navegador predeterminada en Selenium con esto, y está listo para comenzar.

A continuación se muestra un fragmento de código que muestra cómo usar correctamente ChromeDriver no detectado para evitar Cloudflare.

importar controlador_cromo_no detectado como uc de selenium.webdriver.support.ui importar controlador WebDriverWait = uc.Chrome(use_subprocess=True) espera = WebDriverWait(controlador, 20) controlador.get("https://rayobyte.com")

Con solo usar la biblioteca de controladores de cromo no detectados, verá que puede evadir la detección de Cloudflare. Esto le permitirá automatizar sus tareas o incluso raspar la web en busca de datos sin problemas.


Lugar de proxies para eludir Cloudflare

Lugar de proxies para eludir Cloudflare

Si observa el código anterior, verá que no se usaron proxies en todo el proceso. Ahora comienza a preguntarse si necesita proxies para evitar Cloudflare. La razón de esto es simple: solo enviamos una solicitud. Si solo necesita enviar algunas solicitudes, no necesita usar un proxy para hacerlo.

Sin embargo, si va a enviar muchas solicitudes como lo hacen la mayoría de los bots, entonces debe utilizar proxies.

Esto se debe a que, como ocurre con la mayoría de los sistemas anti-bot, el seguimiento de IP sigue siendo una de las partes principales del servicio de Cloudflare. Y cuando recibe demasiadas solicitudes de la misma IP, no importa si hay una huella de bot o no; dicha IP se considerará sospechosa y, como tal, se bloquearán otras solicitudes.

Le recomendamos que utilice proxies residenciales para evitar Cloudflare. Algunos de los mejores proveedores de proxy para estos incluyen Bright Data, Smartproxy y Soax. Si no necesita mantener sesiones, usar proxies rotativos de estos proveedores es lo mejor para evitar Cloudflare.


Preguntas Frecuentes

P. ¿Los proxies protegen contra el bloqueo de Cloudflare?

No ellos no. Es posible que vea algunos proxies comercializarse a sí mismos como proxies para eludir Cloudflare. La realidad sobre el terreno es la contraria. Los proxies por sí solos no lo protegerán contra el bloqueo de Cloudflare. Debe utilizar herramientas que puedan imitar los navegadores de los usuarios habituales, y ahí es donde entra en juego el uso de ChromeDriver no detectado.

Se requieren proxies cuando necesita enviar muchas solicitudes a través de Cloudflare, y no usar proxies corre el riesgo de desconectar su sistema de bloqueo y seguimiento de IP. En muchos casos, se necesitan proxies, pero no son las únicas herramientas que necesita para evadir la omisión de Cloudflare.

P. ¿Qué tan efectivo es Cloudflare para prevenir bots?

Si su sitio web de destino tiene Cloudflare protegiéndolo, entonces realmente debe preocuparse. Esto se debe a que Cloudflare tiene algunos números interesantes que lo asustarán sin siquiera tratar de pasarlos por alto.

Según los datos disponibles, los sitios web protegidos por Cloudflare notan una reducción del 65 % en las solicitudes antes de configurar Cloudflare. Este es un gran trabajo que Cloudflare está haciendo allí mismo. También ayuda a que los sitios web se carguen más rápido y usen menos ancho de banda. Sin embargo, con las técnicas y herramientas adecuadas, aún puede evitarlo y hacerlo menos efectivo.

Los sistemas anti-bot como Cloudflare protegen los sitios web de ataques DDoS y otras formas de spam. Omitirlos no es ilegal, aunque los sitios web los configuran para proteger sus sistemas y bases de datos.

Sin embargo, lo que haga después de pasarlos por alto podría ponerlo en problemas legales. Si solo necesita automatizar sus tareas sin causar ningún daño al sitio web al abrumarlo con solicitudes, entonces todavía está dentro del marco legal.

No somos asesores legales competentes y, como tal, le recomendamos que busque asesoramiento legal de profesionales competentes. Nada de lo que lea aquí debe verse o tomarse como asesoramiento legal.


Conclusión

Como desarrollador de bots, los sistemas anti-bots como Cloudflare son algunas de las pesadillas que enfrentará, ya que pueden frustrarlo. Esto es especialmente cierto si no tienes experiencia en evitarlos.

Como principiante, puede pensar que usar Selenium es una salida fácil para usted, ya que Selenium automatiza los navegadores y procesa JS.

Sin embargo, Cloudflare parece haberse apoderado de bots basados ​​en Selenium. Con la ayuda de la herramienta ChromeDriver no detectada descrita en el artículo, debería poder omitirla sin problemas.

Únase a la conversación

Su dirección de correo electrónico no será publicada. Las areas obligatorias están marcadas como requeridas *