
我正在嘗試鏡像一個網站,但連結的 css 具有 url:http://127.0.0.1:2368/assets/css/screen.css?v=c44dc08367
使用 wget 下載網站會儲存帶有檔案名稱的 css 文件screen.css?v=c44dc08367
我嘗試使用--adjust-extension
flag,但將檔案儲存為screen.css?v=c44dc08367.css
Is it possible to save it the right way as screen.css
using 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 圖片會給我一個文件,而不是圖片?