bash curl scrape

bash - curl 302 redirect no funciona(línea de comando)



scrape (1)

En el navegador, la navegación a esta URL inicia una solicitud 302 (movida temporalmente) que a su vez descarga un archivo.

http://www.targetsite.com/target.php/?event=download&task_id=123

Cuando veo lo que realmente está pasando a través de las herramientas de red de Chrome, veo que la redirección va a una ruta generada dinámicamente que se cancela inmediatamente después de la descarga. En otras palabras, incluso si conozco esa ruta completa, no tendré tiempo para llamarlo manualmente.

Entonces, ¿cómo al usar la línea de comandos puedo imitar las acciones del navegador?

Lo intenté

curl --cookies bin / cookies.txt -O -L " http://www.targetsite.com/target.php/?event=download&task_id=123 " --compressed

pero esto solo devuelve galimatías. El objetivo de esto es descargar este archivo mediante programación sin tener que navegar al sitio. Desafortunadamente, no puedo compartir el sitio aquí porque está detrás de un inicio de sesión.


--location opción -L o --location para permitir que curl siga los redireccionamientos HTTP.

Citando del man curl :

-L, --location (HTTP/HTTPS) If the server reports that the requested page has moved to a different location (indicated with a Location: header and a 3XX response code), this option will make curl redo the request on the new place. If used together with -i, --include or -I, --head, headers from all requested pages will be shown. When authentication is used, curl only sends its credentials to the initial host. If a redirect takes curl to a different host, it won''t be able to intercept the user+password. See also --loca‐ tion-trusted on how to change this. You can limit the amount of redirects to follow by using the --max-redirs option. When curl follows a redirect and the request is not a plain GET (for example POST or PUT), it will do the following request with a GET if the HTTP response was 301, 302, or 303. If the response code was any other 3xx code, curl will re-send the following request using the same unmodified method.