Forçar o wget a usar o nome do arquivo real


51

Ao usar wgetum script para baixar alguns arquivos do Google Docs, o nome do arquivo não é preservado. Por exemplo:

wget 'http://spreadsheets.google.com/pub?key=pyj6tScZqmEfbZyl0qjbiRQ&output=xls' 

salva o arquivo como em pub?key=pyj6tScZqmEfbZyl0qjbiRQvez de indicatorhivestimatedprevalence15-49.xls, que é o que recebo se clicar no link em um navegador. Existe alguma maneira de impor esse comportamento "semelhante ao navegador" wget?

Respostas:


91
wget --content-disposition 'http://spreadsheets.google.com/pub?key=pyj6tScZqmEfbZyl0qjbiRQ&output=xls'

fará o truque para você.

Ainda não está totalmente implementado e, às vezes, parece ser um bug, então não é a opção padrão wget, use-o por sua conta e risco.


11
Eu sei...! Nice hein? ;)
Bruno Pereira

Eu não sou muito programador da web, então nunca pensei em procurar a frase "disposição do conteúdo". Você me salvou tendo que olhar manualmente para os cabeçalhos HTTP, descobrir o cabeçalho de disposição do conteúdo e lidar com ele.
Chinmay Kanchi

WOW + incrível. THX você é uma boa ideia.
Kangarooo

@BrunoPereira, também estou tentando fazer o download do arquivo de planilha do google. Mas não consegui encontrar o link para o arquivo. Você poderia dizer como obter o link para um arquivo de planilha do Google para que eu possa usar o wget da mesma maneira que Chinmay Kanchi. Desde já, obrigado.
user22180

@ChinmayKanchi Eu me chamo programador da Web nos últimos 15 anos, mas quando se trata disso, sempre tento usar um nome mais significativo no código.
tishma 20/10/16


0

O link do Google Docs está realmente dizendo para executar um script no servidor, analisando-o no arquivo que você deseja. O arquivo, que eu saiba, nunca existe no servidor no formato els, mas é gerado no tempo de execução quando você solicita. Portanto, não há nada para o wget obter.

Para fazer o download do arquivo, você precisa usar a http://code.google.com/apis/documents/docs/3.0/developers_guide_protocol.html#DownloadingDocs/ API do Google .


Sim, o servidor está solicitando a execução de um script, o que cria o .xlsarquivo em tempo real. No entanto, um navegador completo não tem problemas com isso. Portanto, é obviamente possível ficar sem a API do Documentos.
amigos estão dizendo

Meu pensamento era que o script executado no navegador usaria a API; portanto, para fazê-lo sem o navegador, seria necessário recriar o script. Interessante que o wget tem uma bandeira para isso.
Ethan
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.