Sé que en un script php:
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
seguirá las redirecciones. ¿Hay alguna manera de seguir los redireccionamientos con la línea de comando cURL?
Sé que en un script php:
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
seguirá las redirecciones. ¿Hay alguna manera de seguir los redireccionamientos con la línea de comando cURL?
Use la bandera del encabezado de ubicación:
curl -L <URL>
man curl
: "Cuando se usa la autenticación, curl solo envía sus credenciales al host inicial. <...> Vea también --location-Trusted sobre cómo cambiar esto".Tuve un problema similar. Estoy publicando mi solución aquí porque creo que podría ayudar a uno de los comentaristas.
Para mí, el obstáculo era que la página requería un inicio de sesión y luego me daba una nueva URL a través de JavaScript. Esto es lo que tuve que hacer:
curl -c cookiejar -g -O -J -L -F "j_username=yourusename" -F "j_password=yourpassword" <URL>
Tenga en cuenta que j_username y j_password es el nombre de los campos para el formulario de inicio de sesión de mi sitio web. Tendrá que abrir la fuente de la página web para ver cuál es el 'nombre' del campo de nombre de usuario y el 'nombre' del campo de contraseña en su caso. Después de eso, voy a un archivo html con script java en el que se insertó la nueva URL. Después de analizar esto, vuelva a enviarlo con la nueva URL:
curl -c cookiejar -g -O -J -L -F "j_username=yourusename" -F "j_password=yourpassword" <NEWURL>
fuente
Como se dijo, para seguir los redireccionamientos puede usar la bandera
-L
o--location
:Pero, si desea limitar el número de redireccionamientos , agregue el parámetro
--max-redirs
fuente