Resolvido. O HTML tem um formulário oculto que envia o pedido via POST. Acabei de adicionar --post-data "login_username=****&login_password=****"
. O servidor só inicia o download se for uma solicitação POST.
Estou tentando baixar um arquivo de um site que exige login. Este comando recupera o cookie.txt e o download de html mostra que estou logado (ok):
(eu quebrei o comando nas linhas para facilitar a leitura)
wget
--user-agent="Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0)
Gecko/20100101 Firefox/45.0"
--keep-session-cookies
--save-cookies cookies.txt
--post-data "login_username=MyUserName&login_password=*******"
--header="Host: somewebsite.com"
--header="Referer: http://somewebsite.com/files/download.php?i=2157716"
http://somewebsite.com/login.php
Aqui eu recebo cookies.txt. (tudo bem). E depois disso: (tentando baixar)
wget
--user-agent="Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0)
Gecko/20100101 Firefox/45.0"
--load-cookies cookies.txt
--header="Host: somewebsite.com"
--header="Referer: http://somewebsite.com/files/download.php?i=2157716"
--header="Connection: keep-alive" --header="Accept-Language: en-US,en;q=0.5"
--header="Accept-Encoding: gzip, deflate"
http://somewebsite.com/files/dl.php?t=2157716
Mas, em vez de baixar o arquivo, ele retorna um ditado em HTML dizendo que o arquivo só pode ser baixado do site.
Aqui estão os dados do POST do Firefox logo antes do download ser iniciado:
O que está faltando?
Tags wget