Заставить wget использовать фактическое имя файла

При использовании wget в сценарии для загрузки некоторых файлов из Документов Google, имя файла не сохраняется. Например:

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

сохраняет файл как pub?key=pyj6tScZqmEfbZyl0qjbiRQ вместо indicatorhivestimatedprevalence15-49.xls, что я получаю, если щелкнуть ссылку в браузере. Есть ли способ применить это «браузерное» поведение в wget?

51
задан 10 November 2011 в 04:08

3 ответа

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

сделает трюк за вас.

Он до сих пор не полностью реализован и, кажется, иногда выходит из строя, так что это не вариант по умолчанию в wget, используйте его на свой страх и риск.

0
ответ дан 10 November 2011 в 04:08

Ссылка Google Docs на самом деле говорит о том, что скрипт на сервере должен быть запущен, анализируя его в нужном вам файле. Насколько мне известно, файл никогда не существует на сервере в форме els, но генерируется во время выполнения, когда вы запрашиваете его. Таким образом, wget ничего не может получить.

Чтобы загрузить файл, вам необходимо использовать API Google http://code.google.com/apis/documents/docs/3.0/developers_guide_protocol.html#DownloadingDocs/ . [ 112]

0
ответ дан 10 November 2011 в 04:08

Вы можете попробовать использовать curl для загрузки и сохранения оригинального имени файла:

curl -OJL ${your_url}
  • -O для удаленного имени
  • -J для удаленного -header-name
  • -L для местоположения

см. параметры командной строки curl .

0
ответ дан 10 November 2011 в 04:08

Другие вопросы по тегам:

Похожие вопросы: