使用 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-extensionflag,但將檔案儲存為screen.css?v=c44dc08367.cssIs it possible to save it the right way as screen.cssusing 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'ing 圖片會給我一個文件,而不是圖片?

相關內容