При использовании wget
в сценарии для загрузки некоторых файлов из Документов Google, имя файла не сохраняется. Например:
wget 'http://spreadsheets.google.com/pub?key=pyj6tScZqmEfbZyl0qjbiRQ&output=xls'
сохраняет файл как pub?key=pyj6tScZqmEfbZyl0qjbiRQ
вместо indicatorhivestimatedprevalence15-49.xls
, что я получаю, если щелкнуть ссылку в браузере. Есть ли способ применить это «браузерное» поведение в wget
?
wget --content-disposition 'http://spreadsheets.google.com/pub?key=pyj6tScZqmEfbZyl0qjbiRQ&output=xls'
сделает трюк за вас.
Он до сих пор не полностью реализован и, кажется, иногда выходит из строя, так что это не вариант по умолчанию в wget
, используйте его на свой страх и риск.
Ссылка Google Docs на самом деле говорит о том, что скрипт на сервере должен быть запущен, анализируя его в нужном вам файле. Насколько мне известно, файл никогда не существует на сервере в форме els, но генерируется во время выполнения, когда вы запрашиваете его. Таким образом, wget ничего не может получить.
Чтобы загрузить файл, вам необходимо использовать API Google http://code.google.com/apis/documents/docs/3.0/developers_guide_protocol.html#DownloadingDocs/ . [ 112]
Вы можете попробовать использовать curl для загрузки и сохранения оригинального имени файла:
curl -OJL ${your_url}