Usar a opção --input-file
e fornecer um arquivo de texto contendo sua (s) URL (s) deve permitir que você use apenas uma chamada / sessão wget com todas as outras opções necessárias.
Eu tenho o seguinte código para recuperar uma página de um site que precisa de autenticação (usa a autenticação da Sungard Higher Education):
wget --delete-after --save-cookies cookies.txt --keep-session-cookies --post-data 'user=foo&password=bar&uuid=0x123' login.php
wget --load-cookies cookies.txt thepage.com
Mas o problema é que o segundo não funciona. Quando eu executo o primeiro, ele diz que eu fiz o login com sucesso, mas obtenho o login necessário no segundo.
Eu tentei fazer com que as chamadas POST / GET correspondessem exatamente ao navegador adicionando --header
para cada cabeçalho obtido da chamada HTTP extraída das ferramentas de desenvolvedor do Chrome, mas ainda assim não funcionou.
Acho que o problema é que a autenticação não é baseada em cookies e estou abrindo uma nova sessão com cada chamada do wget. Como eu evitaria que isso acontecesse (se é isso que está acontecendo)?
Eu acho que o que eu quero fazer é enviar a requisição HTTP e basicamente "navegar" até a página, o que eu imagino ser uma chamada do wget, mas eu realmente não sei como fazer isso.
Usar a opção --input-file
e fornecer um arquivo de texto contendo sua (s) URL (s) deve permitir que você use apenas uma chamada / sessão wget com todas as outras opções necessárias.
Tags command-line wget linux