Forza wget a utilizzare il nome file effettivo


51

Quando si utilizza wgetuno script per scaricare alcuni file da Google Documenti, il nome del file non viene conservato. Per esempio:

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

salva il file come pub?key=pyj6tScZqmEfbZyl0qjbiRQinvece di indicatorhivestimatedprevalence15-49.xls, che è quello che ottengo se clicco sul link in un browser. Esiste un modo per applicare questo comportamento "simile a un browser" wget?

Risposte:


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

farà il trucco per te.

Non è ancora completamente implementato e a volte sembra correggere un po ', quindi non è l'opzione predefinita in wget, usalo a tuo rischio.


1
Lo so...! Bello eh? ;)
Bruno Pereira,

Non sono molto un programmatore web, quindi non avrei mai pensato di cercare la frase "disposizione dei contenuti". Mi hai risparmiato di dover guardare manualmente le intestazioni HTTP, scoprire l'intestazione di disposizione dei contenuti e gestirle.
Chinmay Kanchi,

WOW + fantastico. GRAZIE buona idea.
Canguro

@BrunoPereira, sto anche cercando di scaricare il file di foglio di calcolo di Google. Ma non sono riuscito a trovare il link per il file. Potresti dire come ottenere il link per un file di foglio di calcolo di Google in modo che io possa usare wget allo stesso modo di Chinmay Kanchi. Grazie in anticipo.
user22180,

@ChinmayKanchi Mi definisco un programmatore web negli ultimi 15 anni, ma quando si tratta di questo cerco sempre di usare un nome più significativo nel codice.
tishma,


0

Il link di Google Documenti dice davvero di eseguire uno script sul server, analizzandolo nel file desiderato. Il file, per quanto ne so, non esiste mai sul server sotto forma di els, ma viene generato in fase di esecuzione quando lo chiedi. Pertanto, non c'è nulla da ottenere per wget.

Per scaricare il file, è necessario utilizzare l'API di Google http://code.google.com/apis/documents/docs/3.0/developers_guide_protocol.html#DownloadingDocs/ .


Sì, il server richiede l'esecuzione di uno script, che crea il .xlsfile al volo. Tuttavia, un browser completo non ha problemi con questo. Quindi è ovviamente possibile fare a meno dell'API di Documenti.
Chinmay Kanchi,

Pensavo che lo script eseguito nel browser avrebbe usato l'API, quindi per farlo senza il browser, si sarebbe dovuto ricreare lo script. Interessante che wget abbia una bandiera per questo.
Ethan,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.