Forcer wget à utiliser le nom de fichier réel


51

Lors de l'utilisation wgetdans un script pour télécharger des fichiers à partir de Google Docs, le nom du fichier n'est pas conservé. Par exemple:

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

enregistre le fichier au pub?key=pyj6tScZqmEfbZyl0qjbiRQlieu de indicatorhivestimatedprevalence15-49.xls, ce que je reçois si je clique sur le lien dans un navigateur. Existe-t-il un moyen d'imposer ce comportement de type "navigateur" wget?

Réponses:


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

fera le tour pour vous.

Il n’a toujours pas été complètement implémenté et semble parfois faire l’objet d’un bogue, il n’est donc pas une option par défaut wget, utilisez-le à vos risques et périls.


1
Je connais...! Sympa hein? ;)
Bruno Pereira

Je ne suis pas vraiment un programmeur Web, donc je n'aurais jamais pensé à rechercher l'expression "disposition du contenu". Vous m'avez évité de consulter manuellement les en-têtes HTTP, de découvrir l'en-tête de disposition du contenu et de vous en occuper.
Chinmay Kanchi

WOW + incroyable. THX u roc bonne idée.
Kangourou

@BrunoPereira, j'essaie également de télécharger le fichier de feuille de calcul Google. Mais je n'ai pas pu trouver le lien pour le fichier. Pourriez-vous s'il vous plaît dire comment obtenir le lien vers un fichier de feuille de calcul Google afin que je puisse utiliser wget de la même manière que Chinmay Kanchi. Merci d'avance.
user22180

@ChinmayKanchi Je m'appelle programmeur Web depuis 15 ans, mais quand il s'agit de cela, j'essaie toujours d'utiliser un nom plus significatif dans le code.
Tishma


0

Le lien Google Documents indique en réalité à un script sur le serveur de s'exécuter, en l'analysant dans le fichier souhaité. À ma connaissance, le fichier n'existe pas encore sur le serveur sous la forme els, mais il est généré au moment de l'exécution lorsque vous le demandez. Ainsi, il n'y a rien pour wget à obtenir.

Pour télécharger le fichier, vous devez utiliser l'API Google http://code.google.com/apis/documents/docs/3.0/developers_guide_protocol.html#DownloadingDocs/ .


Oui, le serveur demande à un script de s'exécuter, ce qui crée le .xlsfichier à la volée. Cependant, un navigateur complet n’a aucun problème avec cela. Il est donc évidemment possible de se passer de l'API Docs.
Chinmay Kanchi

Je pensais que le script exécuté dans le navigateur utiliserait l'API. Pour le faire sans navigateur, il fallait recréer le script. Intéressant que wget a un drapeau pour cela.
Ethan
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.