wget 適合批次與非互動下載;遞迴模式很容易抓得過深,對別人的網站也可能造成負擔。單檔下載先用限制重試與逾時的做法。
動手前:尊重網站服務條款、robots 與頻率限制。不要拿遞迴下載對未授權站點做大量抓取;下載程式或映像檔後要驗 checksum。
單檔與續傳
下載單一檔案wget
wget https://example.com/files/manual.pdf使用遠端檔名保存到目前目錄。
指定輸出檔名wget
wget -O manual.pdf https://example.com/download-O 會把所有輸出寫到指定檔,先確認不覆蓋。
中斷後續傳wget
wget -c https://example.com/files/large.iso伺服器需支援續傳;完成後驗 checksum。
限制下載速度wget
wget --limit-rate=2m https://example.com/files/large.iso共用線路可避免吃滿頻寬。
設定逾時與重試wget
wget --timeout=15 --tries=3 https://example.com/file避免無限等待;是否重試也受錯誤類型影響。
下載到指定資料夾wget
wget -P downloads https://example.com/files/manual.pdf先確認 downloads 路徑。
不顯示進度但保留錯誤wget
wget -q --show-progress https://example.com/files/manual.pdf不同版本的進度行為可能略有不同。
批次與遞迴
從網址清單下載wget
wget -i urls.txt一行一個 URL;先審核清單。
背景下載並寫 logwget
wget -b -o wget.log https://example.com/files/large.iso離開終端前記錄 PID 與目的路徑。
只抓一層連結wget
wget -r -l 1 --no-parent https://docs.example.com/guide/仍可能抓很多資源,先在小範圍測試。
建立離線可讀鏡像wget
wget --mirror --convert-links --adjust-extension --page-requisites --no-parent https://docs.example.com/guide/只用於你有權下載的站點,並限制範圍與速率。
遞迴時限制網域wget
wget -r -l 2 --domains=docs.example.com https://docs.example.com/避免跟外部連結一路爬出去。
遞迴時排除路徑wget
wget -r --reject-regex='/logout|/admin' https://example.com/正規表示式要先測;仍應在授權範圍內。
加下載間隔wget
wget -r --wait=2 --random-wait https://docs.example.com/降低請求頻率,但不取代網站授權與 rate limit。
怎麼確認有做對
- 確認檔案大小、Content-Type 與 checksum。
- 遞迴下載先檢查實際產生的 URL 數與磁碟用量。
- 背景工作看 wget.log 與程序結束碼。
常見錯誤
- -O 指到既有重要檔案。
- 鏡像時沒有 --no-parent 或 domain 限制。
- 只靠副檔名相信下載內容。
- 大量重試對網站造成額外壓力。
版本與官方文件
參數會隨工具版本與作業系統實作改變。正式環境先用 --help、-h 或系統內建說明確認,再以當版官方文件為準。