使用wget命令下載網絡資源


wget是GNU/Linux下的一個非交互式(non-interactive)網絡下載工具,支持HTTP、HTTPS與FTP協議,並能夠指定HTTP代理服務器。雖然wget命令與curl命令相比支持的協議並不多,且只能下載不能上傳,其自身還是有一些很出色的特性的。例如,

  • 與很多下載工具不同,wget的下載任務可以在用戶登出、斷開連接的情況下在后台繼續運行。當用戶是遠程登錄到主機操作且有大量資源需要下載時,這個特性非常實用。

  • wget能夠將網站服務器上的HTML、XHTML、CSS等文件全部下載下來,並在本地創建與服務器同樣的目錄結構,以及將下載網頁中的鏈接轉換為本地鏈接。這樣一來,就可以實現網站頁面的本地瀏覽。所以,用wget下載線上的軟件文檔非常方便。

  • wget支持斷點續傳,因而適用於網速較慢和連接不穩定的環境。

wget命令的控制參數比較多,下面對其中較為常用的部分予以介紹。

  • -c:執行斷點續傳。

  • -i file_name:可以將所有需要下載的鏈接都放入文件file_name中,然后wget則可以批量執行下載任務。

  • -r:執行遞歸下載。

  • -l recursion_level:指定遞歸下載的目錄深度。-l 0則為不限制深度。

  • -np:遞歸下載時不要上升到父目錄,即只限定在指定的網站目錄內下載。

  • -H:遞歸下載時如果頁面依賴外部網站資源,使該選項則可以對其下載。

  • -t retry_times:指定當連接中斷時重新嘗試連接的次數。-t 0則為無限次嘗試重連。

  • -N:保留下載文件的時間戳。

  • -p:令wget下載HTML頁面需要加載的所有相關文件,包括圖片、聲音、樣式單等。

  • -k:令wget在下載任務結束后,將文件中的鏈接轉為本地鏈接,從而適於本地頁面瀏覽。

  • --proxy-user--proxy-password:指定代理服務器的用戶名與密碼。代理服務器的地址則可以在環境變量http_proxyftp_proxy中設定。

  • --no-remove-listing:在從FTP下載文件的過程中不移除包含遠端服務器目錄與文件列表信息的.listing臨時文件。該文件可用於核驗是否完成了對所有文件的下載。

  • -m:該選項適用於完整地鏡像一個站點。其等價於-r -N -l inf --no-remove-listing,即含義為:無限深度遞歸下載,保留源文件的時間戳,並保留.listing文件。

將上述參數進行有機組合,則可以實現我們期望的任何下載任務了。例如,使用如下命令下載整個網站用於本地瀏覽。

 $ wget -c -r -l 0 -t 0 -p -np -k -H https://plus.maths.org/content/

本文對wget命令的介紹就到這里。感興趣的朋友可以在自己的GNU/Linux系統上嘗試一下。Windows用戶亦可以在Cygwin下運行wget。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM