
所以我想從網頁伺服器下載所有圖像,特別是 jpeg。我正在運行的命令看起來合法,而且我知道該網站上有 jpeg。例如
wget -r -PC:/ -A.jpghttp://somesitewithjpegs.com
據我了解,此命令將遞歸掃描整個伺服器,僅盡職盡責地搜尋 jpeg 圖像,然後將這些圖像下載到我的 C:/ 驅動器。由於某種原因,這不起作用。
查看原始程式碼,我可以看到圖像實際上並未直接嵌入頁面中,而是託管在伺服器上的另一個目錄中。這就是 wget 無法下載這些映像的原因嗎?
答案1
要回答我自己的問題,wget 確實只能追蹤連結並直接下載檔案。鑑於大多數圖像如何連結到不支援目錄列表或有限制的目錄,wget 無法解析該目錄的內容。
一個很好的例子是 WordPress 網站,它將圖像儲存在 wp-content 資料夾下。嘗試遍歷此資料夾會產生 403 禁止錯誤。儘管我們可以在瀏覽器中將此圖像視為連結圖片,但 wget 無法存取它,因為該圖像儲存在無法直接存取的目錄中。
如果我遺漏了詳細資訊或沒有正確解釋該過程,有人可以添加到這個答案中。
答案2
這就是 wget 無法下載這些映像的原因嗎?
答:也許/最有可能。
嘗試新增這些選項:
-l1-H
這-H告訴應用程式跨域,這意味著它應該遵循指向遠離該網站的鏈接(也許圖像是從不同的伺服器提供的)。還有-l1 意味著只深入一層:也就是說,不要點擊連結網站上的連結。
iirc,在鏡像完整的 WordPress 網站時,您可以從 wp-content 資料夾存取映像。