En este artículo, aprenderás:
- Qué es Akamai y cómo funciona su sistema anti-bot.
- Cómo verificar si un sitio usa Akamai.
- Enfoques de alto nivel para manejar el bypass de detección de bots de Akamai.
- Cómo usar herramientas de código abierto para superar los desafíos de Akamai.
- Cómo manejar de forma más confiable el bypass de Akamai con Bright Data, tanto en solicitudes estáticas como en escenarios de automatización de navegadores.
¡Comencemos!
Cómo Funciona el Mecanismo Anti-Bot de Akamai
Akamai opera como una CDN y una capa de gestión de bots posicionada entre los usuarios y los servidores de origen. Cada solicitud pasa por su red de borde, donde es inspeccionada y permitida, desafiada o bloqueada.
Desde una perspectiva anti-bot, Akamai se basa en un sistema de detección multicapa:
- Capa #1 – Análisis de red y solicitudes: Evalúa la reputación de IP y los patrones a nivel de protocolo (como la huella digital TLS).
- Capa #2 – Análisis de huella digital y del lado del cliente: Akamai inyecta desafíos JavaScript que se ejecutan en el navegador para recopilar señales como características del dispositivo, configuración del navegador y comportamiento del entorno de ejecución. Estas huellas digitales ayudan a distinguir navegadores reales de los automatizados o sin cabeza, incluso cuando las solicitudes HTTP parecen válidas.
- Capa #3: Análisis de comportamiento: Incluye movimientos del ratón, patrones de pulsaciones de teclas, flujo de navegación y tiempos entre acciones. Aquí es donde los bots más avanzados intentan imitar a los humanos para evitar la detección y caer en una “zona gris” de incertidumbre.
Con base en estas señales, Akamai asigna una puntuación de riesgo (Bot Score) y clasifica el tráfico en categorías como usuarios legítimos, bots conocidos y tráfico sospechoso. Las respuestas varían en consecuencia: el tráfico puede ser permitido, limitado en velocidad, desafiado con mecanismos como CAPTCHAs o completamente bloqueado.
Cómo Verificar si un Sitio Web Está Protegido por Akamai
Para determinar si un sitio web utiliza Akamai, debes buscar una combinación de indicadores a nivel de red y de navegador.
Por ejemplo, considera una página de producto de Zalando, ampliamente conocida por estar detrás de la CDN y la capa anti-bot de Akamai. Abre las DevTools del navegador, navega a la pestaña “Network” y recarga la página. Inspecciona la solicitud realizada por el navegador, centrándote en las cabeceras de respuesta:
Puedes notar una cabecera X-Akamai-Transformed. La presencia de cabeceras X-Akamai-* indica que el tráfico está siendo procesado a través de la capa CDN de Akamai.
Otra señal importante proviene de las cookies establecidas por el servidor. Puedes encontrarlas en la sección “Cookies” bajo la pestaña “Application”. En páginas respaldadas por Akamai, notarás as _abck y ak_bmsc.
Estas son las cookies esenciales establecidas por los sistemas de detección de bots de Akamai:
_abck: Una cookie de larga duración utilizada para el seguimiento del comportamiento y la puntuación de riesgo (puede persistir durante meses).ak_bmsc: Una cookie de sesión de corta duración utilizada para detectar anomalías en el comportamiento de navegación (expira en pocas horas).
Aunque puede haber señales adicionales, estas son suficientes para identificar la mayoría de los sitios web respaldados por Akamai.
La Detección de Bots de Akamai en Acción
Para entender cómo se comportan los mecanismos anti-bot de Akamai en un escenario de automatización, considera dos enfoques comunes:
- Enviar una solicitud directa al servidor de destino con un cliente HTTP como Requests.
- Renderizar la página en modo sin cabeza usando una herramienta de automatización de navegadores como Playwright.
Nota: La página de destino sigue siendo la misma página de producto de Zalando mencionada anteriormente.
Akamai vs Requests
Intenta recuperar una página gestionada por Akamai mediante la biblioteca requests:
# pip install requests
import requests
url = "https://www.zalando.co.uk/nike-performance-miler-sports-jacket-black-n1242f0qx-q11.html"
response = requests.get(url)
print("Status code:", response.status_code)
print("\nPage HTML:\n")
print(response.text[:2500])
El script imprimirá:
Status code: 403
Esto muestra que el servidor rechazó la solicitud con una respuesta 403 Forbidden. El HTML devuelto mostrará una página de error en lugar del contenido del producto esperado.
Por lo tanto, una llamada básica de requests no es suficiente para acceder a una página gestionada por Akamai. El mismo resultado ocurrirá con la mayoría de los clientes HTTP estándar.
Akamai vs Playwright
Visita la página de destino usando Playwright en modo sin cabeza. Luego, imprime el código de estado HTTP y toma una captura de pantalla:
# pip install playwright
# python -m playwright install
from playwright.sync_api import sync_playwright
url = "https://www.zalando.co.uk/nike-performance-miler-sports-jacket-black-n1242f0qx-q11.html"
with sync_playwright() as p:
# Visit the target page in headless mode
browser = p.chromium.launch(headless=True)
context = browser.new_context()
page = context.new_page()
response = page.goto(url)
# Print the response's HTTP status code
if response:
print("Status code:", response.status)
else:
print("No response received")
# Take a screenshot of the page
page.screenshot(path="zalando.png")
browser.close()
De nuevo, la solicitud es bloqueada y la salida será:
Status code: 403
La captura de pantalla resultante contendrá una página de denegación de acceso en lugar del contenido del producto esperado:
La página de error indica que el acceso no está permitido sin proporcionar información detallada.
Nota: A diferencia de otros sistemas anti-bot (por ejemplo, Cloudflare), las respuestas de error de Akamai suelen variar entre sitios web.
Enfoques de Alto Nivel para el Bypass de Detección de Bots de Akamai
En este capítulo, explorarás los principales enfoques para eludir la detección de bots de Akamai. Si tienes prisa, consulta la tabla resumen a continuación.
| Enfoque | Descripción breve | Ventajas | Desventajas |
|---|---|---|---|
| Acceso directo al origen | Intenta eludir la CDN enviando solicitudes directamente al servidor de origen si su IP está expuesta | No requiere herramientas adicionales | Rara vez funciona en la práctica |
| Herramientas de bypass de automatización de navegadores de código abierto | Utiliza frameworks de automatización específicos para simular sesiones de navegador de usuarios reales | Gratuito | Detectable por ingeniería inversa y bloqueo basado en IP |
| Herramientas premium de scraping anti-bot | Utiliza servicios gestionados en la nube que lo manejan todo por ti | Muy confiable, escalable, configuración mínima, maneja toda la pila anti-bot | De pago |
Enfoque #1: Acceso Directo al Origen
Al fin y al cabo, Akamai es una CDN. Esto significa que se sitúa entre el servidor de origen de destino y tú (el usuario), almacenando en caché y protegiendo el contenido mientras enruta el tráfico a través de su red de borde distribuida.
En teoría, si la dirección IP del servidor de origen estuviera expuesta (por ejemplo, a través de registros DNS históricos o configuraciones incorrectas), podrías intentar enviar solicitudes directamente a él. Eso significaría eludir directamente la red de Akamai, ya que tu tráfico ahora se enrutaría fuera de la capa CDN.
En la práctica, este enfoque no es confiable por varias razones:
- Restricciones de acceso al origen: Los servidores de origen correctamente configurados solo aceptan tráfico de los rangos de IP de la CDN o requieren solicitudes autenticadas (por ejemplo, cabeceras o tokens firmados).
- Controles a nivel de red: Los cortafuegos y los grupos de seguridad suelen bloquear el acceso público directo.
- Exposición limitada: Descubrir la IP de origen detrás de una CDN es poco común, ya que las configuraciones modernas están diseñadas para evitar este tipo de filtración.
Debido a estas limitaciones, el acceso directo al origen generalmente no es factible en entornos bien configurados. Este es más un concepto teórico que un enfoque práctico.
Enfoque #2: Usar Herramientas de Bypass de Automatización de Navegadores de Código Abierto
Varias bibliotecas de automatización de navegadores de código abierto producen sesiones automatizadas que se asemejan al comportamiento real del usuario. Estas incluyen herramientas como Camoufox, SeleniumBase, NODRIVER y otros frameworks de automatización orientados a anti-bot. Además, algunos frameworks de scraping todo-en-uno como Scrapling ofrecen capacidades similares.
Estas herramientas ajustan el navegador subyacente para lograr huellas digitales realistas, al tiempo que proporcionan una API de automatización de navegadores similar a Selenium o Playwright. Esto aplica incluso cuando se ejecuta la automatización del navegador en modo sin cabeza.
Sin embargo, este enfoque de bypass de detección de bots de Akamai tiene dos limitaciones principales:
- Visibilidad del código abierto: Dado que estas herramientas son de código abierto, sus detalles de implementación están disponibles públicamente. Como resultado, los proveedores anti-bot como Akamai pueden aplicarles ingeniería inversa, bloqueando o degradando temporalmente su efectividad (hasta que se publiquen actualizaciones). Esto crea un ciclo continuo de gato y ratón entre los sistemas de detección y las herramientas de automatización.
- Aplicación basada en IP: Este enfoque es excelente para eludir las verificaciones basadas en huella digital. Sin embargo, las solicitudes de scraping aún se originan desde tu dirección IP. Por lo tanto, Akamai puede bloquearte mediante limitación de velocidad o mecanismos basados en la reputación de IP. Para mitigar esto, debes integrar un servicio premium de rotación de proxies de terceros.
Enfoque #3: Integrar Herramientas Premium de Scraping para Bypass de Akamai
La forma más confiable y escalable de eludir la protección de bots de Akamai es usar herramientas premium de web scraping. Estos servicios manejan toda la pila de desafíos, incluyendo huella digital del navegador, detección de automatización, gestión de IP, resolución de CAPTCHA y escalado de infraestructura.
En lugar de gestionar las solicitudes directamente, proporcionas una URL de destino y recibes el contenido desbloqueado. Esto puede entregarse mediante respuestas HTTP estándar o, en algunos casos, a través de sesiones de automatización de navegadores.
Dado que estas soluciones se despliegan en la nube, no hay riesgo de ingeniería inversa, a diferencia de las bibliotecas de código abierto. Además, generalmente se construyen sobre redes de proxies a gran escala, lo que permite escalabilidad a nivel empresarial.
El principal inconveniente es el costo, ya que estos servicios son productos comerciales. Aun así, el costo por solicitud exitosa suele ser muy bajo (a veces fracciones de céntimo).
Cómo Eludir Akamai con Soluciones de Código Abierto
El acceso directo al origen es más un enfoque teórico que práctico. Entonces, comencemos demostrando el uso de herramientas de automatización de navegadores específicas para anti-bot para eludir las protecciones de Akamai.
En esta sección, probaremos Camoufox y SeleniumBase, aunque también se pueden usar otras herramientas. El objetivo de la prueba será visitar la página de producto protegida de Zalando mencionada anteriormente e intentar tomar una captura de pantalla.
Nota: El resultado a continuación se refiere a una sola ejecución del script usando una IP residencial. El mismo script, cuando se ejecuta desde un servidor o a escala, es probable que falle debido a la limitación de velocidad o problemas de reputación de IP.
¡Observa Camoufox y SeleniumBase en acción contra contenido protegido por Akamai!
Prueba de Bypass de Akamai con Camoufox
Primero, instala Camoufox en tu proyecto Python:
pip install camoufox
Luego recupera los binarios del navegador:
python -m camoufox fetch
Camoufox está construido sobre Playwright, por lo que su API es muy similar. Visita la página de destino, imprime el código de estado HTTP y toma una captura de pantalla con:
# pip install camoufox
# python -m camoufox fetch
from camoufox.sync_api import Camoufox
url = "https://www.zalando.co.uk/nike-performance-miler-sports-jacket-black-n1242f0qx-q11.html"
with Camoufox(headless=True) as browser:
# Visit the target page
page = browser.new_page()
response = page.goto(url)
# Print the response's HTTP status code
if response:
print("Status code:", response.status)
else:
print("No response received")
# Take a screenshot of the page
page.screenshot(path="camoufox_zalando.png")
Para más información sobre esta biblioteca, lee nuestra guía sobre web scraping con Camoufox.
Incluso en modo sin cabeza, el resultado esperado debería ser:
Status code: 200
Y el archivo generado camoufox_zalando.png debería contener la página renderizada:
¡Excelente! Camoufox logró eludir Akamai.
Prueba de Bypass de Akamai con SeleniumBase
Instala SeleniumBase con:
pip install seleniumbase
A continuación, úsalo para visitar la página de destino en Modo UC y tomar una captura de pantalla:
# pip install seleniumbase
from seleniumbase import SB
url = "https://www.zalando.co.uk/nike-performance-miler-sports-jacket-black-n1242f0qx-q11.html"
with SB(uc=True, headless=True) as sb:
# Open the page
sb.open(url)
# Get status code via JS (as Selenium does not expose it directly)
status = sb.execute_script(
"return window.performance.getEntries()[0]?.responseStatus || 'unknown';"
)
print("Status code:", status)
# Wait for page load
sb.sleep(3)
# Take a screenshot
sb.save_screenshot("seleniumbase_zalando.png")
Para más información sobre cómo funciona el modo UC y cómo configurarlo, consulta la guía de scraping con SeleniumBase.
El resultado esperado debería ser:
Status code: 200
Y el archivo producido seleniumbase_zalando.png debería mostrar:
¡Genial! SeleniumBase también eludió las protecciones anti-bot de Akamai.
Cómo Eludir Akamai a Escala con Bright Data
Bright Data te permite acceder a prácticamente cualquier página web, independientemente de si está protegida por Akamai, Cloudflare u otros sistemas anti-bot.
En particular, todos los servicios de scraping de Bright Data están respaldados por un sistema dedicado de Bypass de Bots de Akamai. Esto maneja automáticamente los desafíos anti-bot de Akamai por ti.
Una ventaja clave de Bright Data es que está impulsado por una de las redes de proxies más grandes del mundo, con más de 400 millones de IPs. Esto permite una concurrencia ilimitada, con un tiempo de actividad del 99,99% y un 99,95% de éxito en las solicitudes. Además, gracias a esto, no se ve afectado por bloqueos relacionados con IP o de limitación de velocidad, a diferencia de las herramientas de automatización de navegadores de código abierto.
A continuación, demostraremos cómo eludir la protección de Akamai usando:
- Web Unlocker API: Una API de scraping que maneja la rotación de proxies, los desafíos anti-bot (incluido Akamai) y la resolución de CAPTCHA en una sola solicitud.
- Browser API: Una sesión de navegador en la nube, optimizada para anti-bot, que puede controlarse mediante Playwright, Selenium, Puppeteer o cualquier herramienta de automatización compatible con CDP.
¡Sigue las instrucciones en los próximos capítulos!
Eludir Akamai con la Web Unlocker API de Bright Data
Experimenta el bypass de detección de bots de Akamai usando la Web Unlocker API de Bright Data en un escenario de scraping estático.
Requisitos previos
Para seguir esta sección, asegúrate de tener:
- Una cuenta de Bright Data con una clave de API configurada.
- Una zona de Web Unlocker API configurada en tu cuenta.
- Un script de scraping basado en un enfoque de cliente HTTP.
Para configurar tu cuenta de Bright Data para el uso de la Web Unlocker API, sigue la guía oficial “Crea tu Primera Unlocker API“.
Ejemplo
Si en cambio te interesa recuperar el HTML desbloqueado de Akamai de una página, usa la Web Unlocker API de esta forma:
import requests
# Replace with your Bright Data API key and Web Unlocker API zone name
BRIGHT_DATA_API_KEY = "<YOUR_BRIGHT_DATA_API_KEY>"
BRIGHT_DATA_WEB_UNLOCKER_API_ZONE = "<YOUR_WEB_UNLOCKER_API_ZONE_NAME>"
target_url = "https://www.zalando.co.uk/nike-performance-miler-sports-jacket-black-n1242f0qx-q11.html"
payload = {
"zone": BRIGHT_DATA_WEB_UNLOCKER_API_ZONE,
"url": target_url,
"format": "raw"
}
headers = {
"Authorization": f"Bearer {BRIGHT_DATA_API_KEY}",
"Content-Type": "application/json"
}
# Perform a request to the Bright Data Web Unlocker API
response = requests.post(
"https://api.brightdata.com/request",
json=payload,
headers=headers
)
print("Status code:", response.status_code)
html = response.text
print("\nPage HTML:\n")
print(html)
# Perform web scraping on the returned HTML...
El resultado será:
Status code: 200
Luego, la variable html contendrá el código fuente completo de la página. Puedes fácilmente analizarla con un parser HTML y extraer los datos que desees en un flujo de trabajo de web scraping. Para scraping a gran escala, consulta nuestro Scraper de Zalando.
Eludir Akamai con la Browser API de Bright Data
Aquí verás cómo superar las verificaciones anti-bot de Akamai usando la Browser API de Bright Data en un escenario de automatización de navegadores.
Requisitos previos
Para seguir esta sección, asegúrate de tener:
- Una zona de Browser API configurada en tu cuenta de Bright Data.
- Un script de scraping de automatización de navegadores.
Para obtener la URL de conexión de la Browser API, lee la guía oficial “Crea tu Primera Browser API“.
Aquí mostraremos un ejemplo con Playwright, por lo que la URL de conexión de la Browser API tendrá este aspecto:
wss://<BRIGHT_DATA_BROWSER_API_USERNAME>:<BRIGHT_DATA_BROWSER_API_PASSWORD>@brd.superproxy.io:9222
Ejemplo
Conecta tu script de automatización de Playwright a la Browser API de Bright Data y repite la lógica de captura de pantalla mostrada anteriormente:
# pip install playwright
# python -m playwright install
from playwright.sync_api import sync_playwright
url = "https://www.zalando.co.uk/nike-performance-miler-sports-jacket-black-n1242f0qx-q11.html"
BRIGHT_DATA_BROWSER_API_CDP_URL = "wss://<BRIGHT_DATA_BROWSER_API_USERNAME>:<BRIGHT_DATA_BROWSER_API_PASSWORD>@brd.superproxy.io:9222"
with sync_playwright() as p:
# Connect to Bright Data CDP endpoint
browser = p.chromium.connect_over_cdp(BRIGHT_DATA_BROWSER_API_CDP_URL)
# Create a new context and page
context = browser.new_context()
page = context.new_page()
# Visit the target page in headless mode
response = page.goto(url)
# Print the response's HTTP status code
if response:
print("Status code:", response.status)
else:
print("No response received")
# Take a screenshot of the page
page.screenshot(path="zalando.png")
browser.close()
Cuando se ejecute, el script devolverá:
Status code: 200
La captura de pantalla resultante contendrá el contenido de la página renderizada:
¡Fantástico! Esta vez, gracias a la integración de la Browser API, el script de Playwright funcionó correctamente. La Browser API gestiona la automatización en sesiones de navegador reales administradas en la infraestructura en la nube de Bright Data.
¡Ahora puedes construir flujos de trabajo automatizados para interactuar con la página sin restricciones!
Conclusión
En este artículo, aprendiste cómo funciona el sistema anti-bot de Akamai y exploraste enfoques prácticos para manejarlo en flujos de trabajo de automatización y scraping.
Independientemente del método que elijas, el proceso se vuelve más fácil con soluciones empresariales profesionales, rápidas y confiables, como:
- Web Unlocker API: Un endpoint de API que maneja automáticamente la limitación de velocidad, los desafíos de huella digital y otros mecanismos anti-bot.
- Browser API: Un navegador anti-detección en la nube gestionado que te permite automatizar interacciones con cualquier sitio web a escala.
Al igual que otros productos de scraping de Bright Data, estos servicios están impulsados por el Akamai Bot Solver.
¡Crea una nueva cuenta de Bright Data de forma gratuita hoy y explora nuestras soluciones de scraping!