强制wget使用实际文件名


50

当使用wget在脚本下载谷歌从文档的某些文件,不保留文件的名称。例如:

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

将文件另存为,pub?key=pyj6tScZqmEfbZyl0qjbiRQ而不是indicatorhivestimatedprevalence15-49.xls,这是在浏览器中单击链接后得到的结果。有什么方法可以强制这种“浏览器式”行为wget吗?

Answers:


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

会帮你的忙。

它仍然没有完全实现,有时似乎会出错,因此它不是默认选项wget,使用时需您自担风险。


1
我知道...!很好吧?;)
Bruno Pereira

我并不是一个真正的Web程序员,所以我永远也不会想到要寻找“内容配置”这一短语。您节省了我手动查看HTTP标头,发现content-disposition标头并进行处理的麻烦。
Chinmay Kanchi 2011年

哇+很棒。THX你好主意。
袋鼠

@BrunoPereira,我也在尝试下载Google电子表格文件。但是我找不到该文件的链接。您能否说出如何获取Google电子表格文件的链接,以便我可以像Chinmay Kanchi一样使用wget。提前致谢。
user22180 2014年

@ChinmayKanchi在过去的15年里,我称自己为Web程序员,但是在这方面,我总是尝试在代码中使用更有意义的名称。
tishma


0

Google文档链接实际上是在告诉服务器上要运行的脚本,并将其解析为所需的文件。据我所知,该文件从未以els形式存在于服务器上,而是在您要求时在运行时生成的。因此,wget没有任何东西可以得到。

为了下载文件,您需要使用google API http://code.google.com/apis/documents/docs/3.0/developers_guide_protocol.html#DownloadingDocs/


是的,服务器要求运行脚本,该脚本可以动态创建.xls文件。但是,功能完善的浏览器对此没有任何问题。因此,显然可以不用Docs API。
Chinmay Kanchi 2011年

我的想法是,在浏览器中运行的脚本将使用API​​,因此要在没有浏览器的情况下执行该脚本,就必须重新创建该脚本。有趣的是,wget有一个标志。
伊桑(Ethan)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.