Cómo seguir redirecciones HTTP con cURL
Cuando necesitas obtener el contenido real de la página, el método cURL follow redirect se vuelve muy útil. Al usar el comando curl -L <URL>, en lugar del simple curl <URL>, te aseguras de visitar la página final y extraer los datos desde allí. En otros casos, el sitio web puede redirigirte a una página específica de ubicación o cualquier otra página que decida. Aquí verás cómo usarlo y cómo depurar posibles problemas.
Combinado con CyberYozh proxies, obtienes el conjunto de herramientas para obtener el contenido de cualquier página sin restricciones ni redirecciones no deseadas.
cURL es extremadamente útil cuando necesitas realizar solicitudes HTTP de forma rápida y automática. Lee cómo autenticar sitios web usando cURL para más información.
Las herramientas: Qué proxy seleccionar
Las cadenas de redirección a menudo se enrutan a través de endpoints geo-específicos o CDN, por lo que el proxy detrás de tu solicitud cURL determina si llegas a la página final correcta o si te bloquean a mitad de la cadena.
Los proxies residenciales rotativos deberían ser tu opción predeterminada: su rotación de IP es fácil de controlar por solicitud o por sesión, lo cual es crítico para flujos de trabajo de web scraping y recopilación de datos donde cada salto de redirección necesita una IP limpia y confiable.
Tipo de proxy | Uso para tareas con muchas redirecciones |
Predeterminado preferido: rotación controlable, baja tasa de bloqueo en cadenas de múltiples saltos | |
Mejor para redirecciones de inicio de sesión/geo-bloqueadas que requieren confianza a nivel de operador | |
IP estática estable para cadenas de redirección que necesitan persistencia de sesión | |
Más rápidos, pero más débiles contra verificaciones de bots basadas en redirecciones |
El proceso: Usar comandos cURL follow redirect
Tu comando básico es:
curl -L <URL>Establece la URL de destino como el destino final, que debe alcanzarse incluso si el sitio web te redirige a otra URL, como una página específica de ubicación. Para usar con un proxy, necesitas modificarlo un poco, agregando -x (o --proxy) comando con el protocolo (HTTP o SOCKS5; lee más sobre la selección del protocolo de proxy) y las credenciales del proxy.
curl -L -x <protocol://user:password@IP:port> <URL>Con proxies rotativos, obtienes una puerta de enlace con credenciales, accesible en tu panel de control: simplemente colócala en tu comando y configura la rotación allí.
Usa redirecciones básicas con curl -L
Añade -L a cualquier solicitud cURL para que siga automáticamente cada encabezado 3xx Location hasta que alcance la respuesta final.
curl -L <URL>Sin -L, cURL se detiene en la primera redirección y devuelve solo la respuesta intermedia.
Usa --max-redirs para establecer límites
Limita el número de saltos que cURL seguirá para evitar que se cuelgue en bucles o cadenas excesivas.
curl -L --max-redirs 5 <URL>Establécelo bajo (2–5) para cadenas que esperas que sean cortas, y más alto solo para flujos multipaso conocidos como inicio de sesión o enrutamiento CDN.
Respetar los límites de velocidad y el robots.txt del sitio web es extremadamente importante. Lee sobre web scraping ético para saber más.
Usa curl -L -v para ver la secuencia de redirección
Añade -v (verbose) para imprimir cada encabezado de solicitud y respuesta, incluyendo cada salto de Location en la cadena.
curl -L -v <URL>Usa esto cuando una cadena de redirección se comporte de forma inesperada y necesites identificar exactamente dónde diverge.
Usa curl -L -I para inspeccionar páginas de redirección
Combina -I (solo encabezados) con -L para rastrear la cadena de redirección completa sin descargar los cuerpos de las páginas.
curl -L -I <URL>Esta es la forma más rápida de confirmar la URL de destino final y los códigos de estado antes de ejecutar un scraping completo.
Usa curl -A para enviar un user-agent personalizado
Establece una cadena de user-agent realista para que la lógica de redirección vinculada a la detección de dispositivo o navegador se resuelva correctamente.
curl -L -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64)" <URL>Lee cómo implementar user-agents aleatorios te ayuda a proteger tus pipelines de scraping y evitar restricciones.
Depuración: Solución de problemas comunes
Si enfrentas algún problema, no te preocupes. La mayoría son fácilmente solucionables. Aquí exploraremos los más comunes y cómo resolverlos.
HTTP 302 y otros códigos de respuesta
Con las redirecciones de cURL, a menudo te encuentras con códigos HTTP 3xx, cada uno con reglas diferentes sobre si el método y el cuerpo se preservan. Ahí es cuando necesitas alternar entre usar los métodos GET y POST
Ambos pueden usarse fácilmente con la función curl especificándolos antes de la URL. GET se usa por defecto con la mayoría de las opciones, para usar POST, necesitas escribir explícitamente POST antes de la URL.
301 Moved Permanently
El recurso tiene una nueva URL permanente; algunos clientes cambian un POST a GET al seguir. Usa -L normalmente; trata la nueva URL como canónica para futuras solicitudes.
302 Found
Una redirección temporal heredada; el comportamiento en la preservación del método es inconsistente entre clientes, por lo que cURL puede convertir POST a GET. Este es el problema más frecuente. Si necesitas que el método original se preserve, prueba con --post302 explícitamente.
303 See Other
Siempre redirige a una solicitud GET, típicamente después de que se completa el envío de un formulario o una acción de API. Espera que los datos del cuerpo se descarten; no confíes solo en -L si necesitas que la carga útil original se reenvíe.
307 Temporary Redirect
Preserva el método y el cuerpo originales, por lo que un POST permanece como POST. Es seguro seguirlo con -L al hacer scraping de endpoints de API que redirigen después del envío.
308 Permanent Redirect
Igual que 301 pero garantiza que el método no se cambia. Trátalo como el equivalente moderno y seguro en cuanto a método de un movimiento permanente.
cURL no sigue las redirecciones
Si curl -L parece no tener efecto, el sitio probablemente está usando una redirección JavaScript o meta-refresh, que cURL no puede ver ya que solo lee encabezados HTTP.
Confirma con curl -L -I primero. Si el estado permanece en 200, la lógica de redirección es del lado del cliente y requiere un navegador sin interfaz gráfica en su lugar.
Explora las guías de Playwright y Puppeteer para obtener más información sobre automatización web avanzada y scraping.
Error cURL 47 maximum redirects followed
Este error significa que cURL alcanzó su límite de --max-redirs (el valor predeterminado es alto, pero los bucles lo activan rápidamente). Soluciones:
Ejecuta curl -L -v para inspeccionar la cadena y detectar un bucle.
Reduce --max-redirs durante la depuración.
Cambia a una IP de proxy residencial rotativo limpia. Muchos bucles de redirección son provocados por IPs de centros de datos en listas negras o reutilizadas que son rechazadas por sistemas anti-bot.
Conclusión: Usa cURL follow redirect
Los comandos de redirección de cURL te permiten alcanzar la página final real en lugar de detenerte en un salto intermedio, usando -L para seguir y --max-redirs para mantenerte a salvo de bucles. Combinado con los proxies residenciales o móviles de CyberYozh, obtienes acceso consistente y sin bloqueos a sitios con muchas redirecciones a escala.
Consulta el catálogo de proxies ahora para comenzar.
Preguntas frecuentes sobre cURL follow redirect
¿Cómo hago que cURL siga las redirecciones?
Agrega la bandera -L (o --location) a tu comando. cURL leerá entonces cada encabezado Location y solicitará la siguiente URL automáticamente hasta que alcance la página final.
¿Por qué curl -L no funciona en algunos sitios?
La redirección puede estar basada en JavaScript o meta-refresh en lugar de una respuesta HTTP 3xx, lo cual cURL no puede detectar ya que solo procesa encabezados.
¿Cuántas redirecciones sigue cURL por defecto?
cURL sigue un número alto de saltos por defecto, pero esto puede cambiarse con --max-redirs, que también protege contra bucles infinitos.
¿Qué significa "curl: (47) maximum redirects followed"?
Significa que cURL alcanzó su límite de redirecciones, generalmente debido a un bucle o a un sitio que rebota repetidamente la solicitud, a menudo provocado por una IP marcada.
¿Cómo uso cURL con un proxy y sigo las redirecciones al mismo tiempo?
Combina -L con -x protocol://user:password@IP:port; cURL enrutará cada salto de la cadena de redirección a través de ese proxy.
¿cURL sigue las redirecciones 302 automáticamente?
Solo con -L habilitado; sin él, cURL se detiene en la primera respuesta 302 y no solicita la nueva URL.
¿Cómo evito que cURL siga las redirecciones?
Simplemente omite -L, o establece --max-redirs 0 si quieres confirmar que la bandera no está configurada accidentalmente en otro lugar.
¿Una redirección cambia mi solicitud de POST a GET?
Depende del código de estado: 301/302 pueden cambiar a GET en algunos clientes, mientras que 307/308 siempre preservan el método y el cuerpo originales.
¿Cómo veo la cadena de redirección completa sin obtener el cuerpo de la página?
Usa curl -L -I para imprimir solo los encabezados y códigos de estado de cada salto, revelando el destino final rápidamente.
¿Qué tipo de proxy funciona mejor para scraping con muchas redirecciones?
Los proxies residenciales rotativos son recomendados por defecto porque combinan rotación de IP controlable con alta aceptación en redirecciones y verificaciones anti-bot.