强制 wget 使用实际文件名

强制 wget 使用实际文件名

在脚本中使用从 Google Docs 下载某些文件时wget,文件的名称不会被保留。例如:

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

将文件另存为pub?key=pyj6tScZqmEfbZyl0qjbiRQ而不是indicatorhivestimatedprevalence15-49.xls,如果我在浏览器中单击链接,则会得到 。 有没有办法在 中强制执行这种“类似浏览器”的行为wget

答案1

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

会帮你解决问题。

它还没有完全实现,而且有时似乎会出现一些小问题,所以它不是默认选项wget,请自行承担风险。

答案2

您可以尝试使用卷曲下载并保留原始文件名:

curl -OJL ${your_url}
  • -O 表示远程名称
  • -J 表示远程标头名称
  • -L 表示位置

curl 命令行选项

答案3

Google Docs 链接实际上是告诉服务器上的脚本运行,将其解析为您想要的文件。据我所知,该文件在服务器上从未以 els 形式存在,而是在您请求时在运行时生成的。因此,wget 无法获取任何内容。

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

相关内容