使用 wget 下载带有 get params 的 css

使用 wget 下载带有 get params 的 css

我正在尝试镜像一个站点,但是链接的 css 具有以下 url:http://127.0.0.1:2368/assets/css/screen.css?v=c44dc08367

使用 wget 下载网站并使用文件名保存 css 文件screen.css?v=c44dc08367

我尝试使用--adjust-extension标志,但是这会将文件保存为screen.css?v=c44dc08367.css是否可以像screen.css使用 wget 一样以正确的方式保存它?

我正在使用基于 darwin12.5.0 构建的 GNU Wget 1.14。

编辑:我无法指定文件名,因为我正在镜像整个网站,所以实际命令如下。css 链接位于页面内(由 wget 自动获取)

wget \
               --recursive \              # follow links to download entire site
               --page-requisites \        # grab everything: css / inlined images
               --no-parent \              # don't go to parent level
               --directory-prefix static \# download contents to static/ folder
               --no-host-directories \    # don't create domain named folder
               --adjust-extension \
               http://127.0.0.1:2368/

答案1

不幸的是,除非您告诉 wget,否则它不会对您要下载的内容做出任何假设。它不关心您的文件是图像、文档、压缩文件还是其他。

文件将以 URL 结尾的任何内容保存 - 因此从最后一个斜杠到 URL 末尾的任何内容。在您的例子中,即 .css?v=c44dc08367。实际文件扩展名 (.css) 后面的部分包含在 URL 中,但它是一个 HTTP 查询参数。但是,对于 wget,它将确定输出文件名。

如果您想为 wget 指定输出文件名,请添加 -O(大写 O)选项:

wget http://127.0.0.1:2368/assets/css/screen.css?v=c44dc08367 -O screen.css

最后,还有 --content-disposition 选项,它可能会导致设置正确的文件名。但这完全取决于您下载的服务器是否发送了正确的标头信息。

此处摘录:为什么使用 wget 获取图像会返回一个文件,而不是图像?

相关内容