¿Tu web scraper se volvió a bloquear? ¡Uf! ¿Y ahora qué? Has conseguido que los encabezados HTTP parezcan un navegador, pero el sitio ha descubierto que tus solicitudes estaban automatizadas. ¿Cómo es posible? Es muy sencillo: ¡es tu huella digital TLS! 😲
Sumérjase en el astuto mundo de las huellas dactilares TLS, descubra por qué es el asesino silencioso detrás de la mayoría de los bloqueos y aprenda cómo evitarlo.
Supongamos que se trata de un escenario de extracción de datos típico. Está realizando una solicitud automatizada mediante un cliente HTTP (como Requests en Python o Axios en JavaScript) para obtener el código HTML de una página web y extraer algunos datos de ella.
Como probablemente ya sepas, la mayoría de los sitios web cuentan con tecnologías de protección contra bots . ¿Tienes curiosidad por saber cuál es la mejor tecnología anti-scraping? ¡Consulta nuestra guía sobre las mejores soluciones anti-scraping! 🔐
Estas herramientas monitorean las solicitudes entrantes y filtran las sospechosas.
Si parece que tu solicitud proviene de un ser humano común y corriente, no hay problema. ¿De lo contrario? ¡Será rechazada! 🧱
Ahora bien, ¿cómo se ve una solicitud de un usuario normal? ¡Es muy fácil! Simplemente abra las herramientas de desarrollo de su navegador, diríjase a la pestaña Red y compruébelo usted mismo:
Si copia esa solicitud a cURL seleccionando la opción del menú contextual, obtendrá algo como esto:
curl 'https://kick.com/emotes/ninja' \ -H 'accept: application/json' \ -H 'accept-language: en-US,en;q=0.9' \ -H 'cache-control: max-age=0' \ -H 'cluster: v1' \ -H 'priority: u=1, i' \ -H 'referer: https://kick.com/ninja' \ -H 'sec-ch-ua: "Google Chrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"' \ -H 'sec-ch-ua-mobile: ?0' \ -H 'sec-ch-ua-platform: "Windows"' \ -H 'sec-fetch-dest: empty' \ -H 'sec-fetch-mode: cors' \ -H 'sec-fetch-site: same-origin' \ -H 'user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36'
Si esta sintaxis te parece china, no te preocupes: consulta nuestra introducción a cURL . 📖
Básicamente, una solicitud “humana” es simplemente una solicitud HTTP normal con algunos encabezados adicionales (los indicadores -H
). Los sistemas anti-bots inspeccionan esos encabezados para determinar si una solicitud proviene de un bot o de un usuario legítimo en un navegador.
¿Una de sus mayores señales de alerta? ¡El encabezado User-Agent ! Explore nuestra publicación sobre los mejores agentes de usuario para el web scraping . Ese encabezado lo configuran automáticamente los clientes HTTP, pero nunca coincide exactamente con los que usan los navegadores reales.
¿Hay alguna discrepancia en los encabezados? ¡Es una señal clara de que hay bots! 💀
Para obtener más información, consulte nuestra guía sobre encabezados HTTP para web scraping .
Ahora, puede que estés pensando: "Es una solución fácil, ¡simplemente realizaré solicitudes automáticas con esos encabezados!" Pero espera un segundo... 🚨
Continúe y ejecute la solicitud cURL que copió de DevTools:
¡Sorpresa! El servidor te respondió con una página de “403 Acceso denegado” de Cloudflare. Sí, incluso con los encabezados similares a los del navegador, ¡puedes quedar bloqueado!
Después de todo, descifrar Cloudflare no es tan fácil. 😅
Pero espera, ¿cómo? ¿No es exactamente la misma solicitud que haría un navegador? 🤔 Bueno, no exactamente…
En el nivel de aplicación del modelo OSI, las solicitudes del navegador y de cURL son las mismas. Sin embargo, hay capas subyacentes que quizás estés pasando por alto. 🫠
Algunas de estas capas suelen ser las culpables de esos molestos bloqueos, y la información que se transfiere allí es exactamente en lo que se centran las tecnologías anti-scraping avanzadas. ¡Bestias astutas y escurridizas! 👹
Por ejemplo, analizan tu dirección IP , que se obtiene de la capa de red. ¿Quieres evitar esas prohibiciones de IP? ¡Sigue nuestro tutorial sobre cómo evitar una prohibición de IP con servidores proxy !
¡Lamentablemente, eso no es todo! 😩
Los sistemas anti-bot también prestan mucha atención a la huella digital TLS del canal de comunicación seguro establecido entre su script y el servidor web de destino en la capa de transporte.
¡Ahí es donde las cosas difieren entre un navegador y una solicitud HTTP automatizada! Genial, ¿verdad? Pero ahora debes estar preguntándote qué implica eso... 🔍
Una huella digital TLS es un identificador único que las soluciones anti-bot crean cuando su navegador o cliente HTTP configura una conexión segura a un sitio web.
Es como una firma digital que tu máquina deja durante el protocolo de enlace TLS , la “conversación” inicial entre un cliente y el servidor web para decidir cómo cifrarán y protegerán los datos en la capa de transporte. 🤝
Cuando realiza una solicitud HTTP a un sitio, la biblioteca TLS subyacente en su navegador o cliente HTTP inicia el procedimiento de enlace. Las dos partes, el cliente y el servidor, comienzan a preguntarse entre sí cosas como: "¿Qué protocolos de cifrado admite?" y "¿Qué cifrados deberíamos usar?" ❓
En función de tus respuestas, el servidor puede determinar si eres un usuario normal de un navegador o un script automatizado que utiliza un cliente HTTP. En otras palabras, si tus respuestas no coinciden con las de los navegadores habituales, es posible que te bloqueen.
Imagínese este apretón de manos como si dos personas se conocieran:
Versión humana :
Servidor: "¿Qué idioma hablas?"
Navegador: "Inglés, francés, chino y español"
Servidor: "Genial, charlemos"
Versión del bot :
Servidor: "¿Qué idioma hablas?"
Bot: “¡Miau! 🐈”
Servidor: “Lo siento, pero no pareces un ser humano. ¡Bloqueado!”
La identificación de huellas digitales TLS opera por debajo de la capa de aplicación del modelo OSI. Eso significa que no puedes modificar tu huella digital TLS con unas pocas líneas de código. 🚫 💻 🚫
Para falsificar las huellas digitales TLS, debe intercambiar las configuraciones TLS de su cliente HTTP con las de un navegador real. ¿El truco? ¡No todos los clientes HTTP le permiten hacer esto!
Ahí es donde entran en juego herramientas como cURL Impersonate . Esta versión especial de cURL está diseñada para imitar la configuración TLS de un navegador, lo que te ayuda a simular un navegador desde la línea de comandos.
Ahora, usted podría estar pensando: “Bueno, si los clientes HTTP emiten huellas digitales TLS 'similares a las de un bot', ¿por qué no usar un navegador para realizar el rastreo?”
La idea es utilizar una herramienta de automatización del navegador para ejecutar tareas específicas en una página web con un navegador sin interfaz gráfica.
Ya sea que el navegador se ejecute en modo headless o headless, sigue utilizando las mismas bibliotecas TLS subyacentes. ¡Es una buena noticia porque significa que los navegadores headless generan una huella digital TLS "similar a la humana"! 🎉
Esa es la solución, ¿no? En realidad no… 🫤
Y aquí está el quid de la cuestión: los navegadores sin interfaz gráfica vienen con otras configuraciones que gritan: "¡Soy un bot!" 🤖
Claro, puedes intentar ocultarlo con un complemento oculto en Puppeteer Extra , pero los sistemas anti-bot avanzados aún pueden detectar navegadores sin cabeza a través de desafíos de JavaScript y huellas digitales del navegador.
Así que, sí, los navegadores sin cabeza tampoco son una escapatoria infalible para los anti-bots. 😬
La verificación de huellas dactilares TLS es solo una de las muchas tácticas avanzadas de protección contra bots que implementan las sofisticadas soluciones anti-scraping. 🛡️
Para dejar atrás por completo los dolores de cabeza que suponen las huellas dactilares TLS y otros bloqueos molestos, necesita una solución de raspado de nivel superior que proporcione:
Huellas digitales TLS confiables
Escalabilidad ilimitada
Superpoderes para resolver CAPTCHA
Rotación de IP incorporada a través de una red proxy de 72 millones de IP
Reintentos automáticos
Capacidades de renderizado de JavaScript
Estas son algunas de las muchas características que ofrece la API Scraping Browser de Bright Data, una solución de navegador en la nube todo en uno para rastrear la Web de manera eficiente y eficaz.
Este producto se integra perfectamente con sus herramientas de automatización del navegador favoritas, incluidas Playwright, Selenium y Puppeteer. ✨
Simplemente configure la lógica de automatización, ejecute su script y deje que la API de Scraping Browser se encargue del trabajo sucio. ¡Olvídese de los bloqueos y vuelva a lo que importa: extraer datos a toda velocidad! ⚡️
¿No necesitas interactuar con la página? ¡Prueba Web Unlocker de Bright Data!
Ahora ya sabe por qué trabajar a nivel de aplicación no es suficiente para evitar todos los bloqueos. La biblioteca TLS que utiliza su cliente HTTP también desempeña un papel importante. ¿La huella digital TLS? Ya no es un misterio: ya lo ha resuelto y sabe cómo abordarlo.
¿Buscas una forma de realizar scraping sin toparse con bloques? ¡No busques más que el conjunto de herramientas de Bright Data ! Únete a la misión de hacer que Internet sea accesible para todos, incluso a través de solicitudes HTTP automatizadas. 🌐
¡Hasta la próxima, seguid navegando por la Web con libertad!