下載較大型的檔案時,可能會因網路不穩或是臨時有事而中斷連線的狀況,之後如果要重新下載,可能要重頭開始才行,這重來的動作將十分消耗時間與網路流量,因此我們必須要使用擁有下載斷點續傳能力的軟體才行。在Linux環境上有Multiget,它是一款擁有視窗介面且開放原始碼的續傳軟體,但是因為很久沒有人維護了,程式不是那麼的穩定,也不建議使用。事實上,許多Linux發行版已內建了檔案下載與續傳的工具,而且功能十分強大,如果知道怎麼使用的話,根本無需再去尋找其它的工具軟體。這個強大的工具就是「Wget」,它除可以進行一般HTTP、HTTPS、FTP協定的連線外,還可以自訂連線時使用的代理伺服器(Proxy),甚至可以將整個網站給抓下來,也就是俗稱的「砍站」。
下載與安裝Wget
如果您的系統沒有安裝Wget,可以到Wget的官方網頁找到它:
Wget 的使用方式
查看文件
在終端機下輸入以下指令,可以查看Wget的用法:
下載檔案
使用Wget下載檔案十分簡單,只要先將終端機的工作目錄移動到檔案下載後想要存放的位置,接著在使用以下指令來連線下載即可:
如下圖,使用Wget來下載Ubuntu的映像檔。會以=
來顯示處理進度。
斷點續傳
在預設的情況下,Wget是沒有續傳能力的,也就是如果下載中止的話,下次得重頭開始下載。
因此在使用Wget來下載檔案的時候,通常會多加上-c
參數,開啟Wget的續傳功能,指令如下:
如下圖,續傳之前斷開的Ubuntu映像檔,已經下載的進度會以+
表示。
設定代理伺服器(Proxy)
在大部分的情況下,使用Proxy可以減少網路的負載量,甚至還可以提高連線速度。若要讓Wget使用Proxy來進行連線,可以使用類似以下的指令用純文字編輯器編輯/etc/wgetrc
:
預設的情況下https_proxy
、http_proxy
、ftp_proxy
、use_proxy
都被註解掉了。因此可以將它們取消註解,設定自己想使用的Proxy,填寫Proxy的格式可參考下圖,並將use_proxy
設為on
。
將/etc/wgetrc
存檔後,之後使用Wget除非特地加上不使用Proxy的參數(如--no-proxy
),不然Wget預設都會以/etc/wgetrc
檔案裡設定的Proxy來進行連線。
擷取整個網站(砍站)
如果要把整個的網站的內容幹下來保存下來,可以使用以下指令:
以下是參數說明:
--recursive
:遞迴下載,如果網址的部份為網站首頁的話,將會一層一層地將首頁所能連結到的所有頁面下載回來。--page-requisites
:下載顯示網頁時所需的素材,像是圖片或是CSS。--html-extension
:將檔名改為html,這樣才不會抓php網站而產生php檔案或是抓asp網站而產生asp檔案。--convert-links
:將原本網站內所有站內的連結全都改為Local連結,這樣下載網站後才可以離線使用。--domains
:只接受哪些網域下的網頁,可以多個網域,以逗號分隔。通常只會填入該網站的網域。