Eu sei que em um script php:
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
seguirá redirecionamentos. Existe uma maneira de seguir redirecionamentos com a linha de comando cURL?
Eu sei que em um script php:
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
seguirá redirecionamentos. Existe uma maneira de seguir redirecionamentos com a linha de comando cURL?
Use o sinalizador de cabeçalho do local:
curl -L <URL>
man curl
: "Quando a autenticação é usada, o curl envia apenas suas credenciais para o host inicial. <...> Veja também --location-trust sobre como alterar isso."Eu tive um problema parecido. Estou postando minha solução aqui porque acredito que ela possa ajudar um dos comentaristas.
Para mim, o obstáculo era que a página exigia um login e depois me forneceu uma nova URL por javascript. Aqui está o que eu tinha que fazer:
curl -c cookiejar -g -O -J -L -F "j_username=yourusename" -F "j_password=yourpassword" <URL>
Observe que j_username e j_password é o nome dos campos do formulário de login do meu site. Você precisará abrir a fonte da página da Web para ver qual é o seu nome no campo "nome" do nome de usuário e "nome" no campo da senha. Depois disso, vou para um arquivo html com script java no qual a nova URL foi incorporada. Depois de analisar isso, basta reenviar com o novo URL:
curl -c cookiejar -g -O -J -L -F "j_username=yourusename" -F "j_password=yourpassword" <NEWURL>
fonte
Como dito, para seguir os redirecionamentos, você pode usar a bandeira
-L
ou--location
:Mas, se você quiser limitar o número de redirecionamentos , adicione o parâmetro
--max-redirs
fonte