Fazendo o download com wget usando referer + cookie

0

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?

    
por Azevedo 05.04.2016 / 02:14

1 resposta

1

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.

    
por 05.04.2016 / 19:25

Tags