Wget下载网页与镜像网站
本文主要介紹GNU Wget實用程序及其在在FreeBSD操作系統(tǒng)下的安裝過程,并對幾個最常用的下載功能進(jìn)行了說明,主要包括以下幾個方面:
- GNU Wget概述
- Wget程序安裝
- Wget常用功能
1 GNU Wget概述
GNU?Wget是一個免費的實用程序,方便用戶以非交互方式下載文件,支持HTTP、HTTPS和FTP協(xié)議,也可以通過HTTP代理進(jìn)行檢索。
(1)非互式
Wget是非交互式的,這意味著它可以在后臺工作,下載過程中不需要用戶登錄,也不需要用戶介入。用戶啟動Wget任務(wù)后即可斷開與系統(tǒng)的連接,留下Wget默默地完成工作,這在傳輸大量數(shù)據(jù)或者執(zhí)行耗時較長的任務(wù)時提供了極大的便利。
(2)遞歸下載
Wget可以跟蹤HTML、XHTML和CSS頁面中的鏈接,以創(chuàng)建遠(yuǎn)程網(wǎng)站的本地版本,從而完全重新創(chuàng)建原始網(wǎng)站的目錄結(jié)構(gòu)。這有時被稱為“遞歸下載”。當(dāng)然,Wget會尊重機(jī)器人排除標(biāo)準(zhǔn)(/robots.txt)。用戶還可以指示W(wǎng)get將下載文件中的鏈接轉(zhuǎn)換為指向本地文件,以便脫機(jī)查看。
(3)站點鏡像
當(dāng)通過FTP檢索時,可以使用文件名通配符匹配和目錄的遞歸鏡像。Wget可以讀取HTTP和FTP服務(wù)器提供的時間戳信息,并將其存儲在本地。因此,Wget可以查看遠(yuǎn)程文件自上次檢索以來是否發(fā)生了變化,如果有,則自動檢索新版本。這使得Wget適合于FTP站點和主頁的鏡像。
(4)斷點續(xù)傳
Wget被設(shè)計為對緩慢或不穩(wěn)定的網(wǎng)絡(luò)連接的健壯性。如果由于網(wǎng)絡(luò)問題導(dǎo)致下載失敗,它將繼續(xù)重試,直到檢索到整個文件。如果服務(wù)器支持重傳,它將指示服務(wù)器從上次停止的地方繼續(xù)下載。
(5)代理服務(wù)
Wget支持代理服務(wù)器,它可以減輕網(wǎng)絡(luò)負(fù)載,加快檢索速度,并提供防火墻后的訪問。Wget默認(rèn)使用被動FTP下載,主動FTP是一個選項。
(6)功能豐富
Wget內(nèi)置豐富的功能,大多數(shù)功能都可以可以通過命令行選項或通過初始化文件進(jìn)行配置。
(7)免費使用
GNU?Wget是一個自由軟件。這意味著每個人都可以根據(jù)自由軟件基金會發(fā)布的GNU通用公共許可證條款使用它、重新分發(fā)它和/或修改它,更多的功能請參見GNUWget的官網(wǎng)說明。
2 Wget程序安裝
在FreeBSD操作系統(tǒng)中安裝Wget非常簡便。可以通過Potrs手工編譯來安裝,也可以通過pkg來安裝編譯好的二進(jìn)制程序包。
以root用戶在命令行中輸入pkg install wget,然后按照提示操作即可安裝編譯好的Wget程序。
3 Wget常用功能
安裝完后,運行 wget --help 命令查看程序幫助。
從幫助信息中可以看出,Wget最簡單的使用方式為在wget命令后面直接跟要下載的URL網(wǎng)絡(luò)地址,那就隨便找個地址輸入一下看看吧。
同時,也會發(fā)現(xiàn)wget中可以設(shè)置的參數(shù)非常多,大體上分為啟動參數(shù)、日志與輸入文件、下載參數(shù)、目錄參數(shù)、HTTP選項、HTTPS選項、FTP選項、FTPS選項、遞歸下載選項、遞歸接受、拒絕選項等等。如此數(shù)量的參數(shù)看著都讓人頭大,好在日常應(yīng)用中涉及的參數(shù)不太多,下面結(jié)合常用的幾個下載場景,對涉及到的選項進(jìn)行簡要說明。
(1)斷點續(xù)傳
短格式:-c
長格式:--continue’
斷點續(xù)傳是下載過程中最常用的功能,可以從以前下載的斷點處繼續(xù)下載而不是重新從頭來過。這個參數(shù)常用于網(wǎng)絡(luò)不穩(wěn)定或者耗時較長的大文件下載,命令格式如下:
wget --continue http://localhost/index.html(2)不生成主機(jī)前綴文件夾
短格式:-nH
長格式:--no-host-directories
在下載多個文件時,Wget會解析URL中的目錄結(jié)構(gòu)自動生成文件存儲結(jié)構(gòu),默認(rèn)會從主機(jī)開始生成文件夾。這個選項告訴Wget不要從主機(jī)以后生成文件夾,不要生成這個主機(jī)文件夾,命令格式如下:
wget --no-host-directories http://localhost/index.html(3)調(diào)整擴(kuò)展名
短格式:-E
長格式:--adjust-extension
如果下載的文件類型為“application/xhtml+xml”或“text/html”而URL卻沒有以正則表達(dá)式“\.[Hh][Tt][Mm][Ll]?”結(jié)尾時,這個選項會給文件名加下“.html”后綴,以保證文件類型的正確。這種方式在需要鏡像一個網(wǎng)頁文件不以html結(jié)尾的網(wǎng)站時會起到很大的作用。命令格式如下:
wget --adjust-extension http://localhost/index.html(4)壓縮下載
長格式:--compression=type
壓縮下載選項只有一種長格式,用來選擇傳輸過程中的壓縮類型,可選項為“auto”、“gzip”和“none”。
如果定義為“auto”或者“gzip”,Wget會請求服務(wù)器使用gzip格式壓縮這個文件。如果服務(wù)器壓縮了這個文件,并在響應(yīng)中加入了相應(yīng)的“Content-Encoding”頭域,接收到的文件將會被自動解壓縮。
如果定義為“none”,Wget不會請求服務(wù)器壓縮這個文件。這也是默認(rèn)的壓縮選項。
命令格式如下:
wget --compression=auto http://localhost/index.html(5)設(shè)置用戶代理字符串
短格式:-U agent-string
長格式:--user-agent=agent-string
這個選項設(shè)置發(fā)送給HTTP服務(wù)器的“User-Agent”頭字段。HTTP協(xié)議允許瀏覽器通過“User-Agent”頭域字段識別自己。服務(wù)器也可以通過這個字段來區(qū)分“WWW”軟件,并進(jìn)行客戶追蹤等。Wget通常使用“Wget/version”字符串來標(biāo)記自己。然而,一些站點可能實施了根據(jù)用戶代理信息來調(diào)整服務(wù)輸出的策略,可能會拒絕向看起來不像是瀏覽器的的客戶提供信息。此選項允許更改由Wget發(fā)布的用戶代理頭部行。當(dāng)然,如非必要,最好要使用這個選項。命令格式如下:
wget --user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0"?http://localhost/index.html(6)下載子文件夾
短格式:-r
長格式:--recursive
此選項開啟遞歸下載,默認(rèn)摸索的樹深度為5級,如果要自定義樹深度可以使用--level參數(shù)。
短格式:-l depth
長格式:--level=depth
此選項設(shè)置遞歸搜索的子文件夾的深度,可以避免下載較深的目錄,此選項默認(rèn)值為5,設(shè)置為“-l 0”或“-l inf”代表無限深度。
命令格式如下:
wget -r -l 0?http://localhost/index.html(7)檢查時間戳
短格式:-N
長格式:--timestamping
此選項用于比對文件的時間戳,只有修改時間發(fā)生變化了的文件才會被下載。這有利于節(jié)省網(wǎng)絡(luò)帶寬和等待時間,沒有變化的文件不會被下載多次。命令格式如下:
wget -N ?http://localhost/index.html wget --timestamping http://localhost/index.html(8)鏡像下載
短格式:-m
長格式:--mirror
此選項用于網(wǎng)站或文件的鏡像下載。此選項打開了遞歸下載、無限深度和時間戳檢查選項,并且保持FTP目錄列表顯示,實際效果相當(dāng)于“-r -N -l inf --no-remove-listing”,即自動進(jìn)行無深度限制的遞歸搜索,檢查文件的修改時間戳,只下載修改時間發(fā)生變化的文件。使用此選項需要注意的是Wget不會自動修改頁面中的鏈接,網(wǎng)站原封不動的下載,原封不動的瀏覽。命令格式如下:
wget -r -N -l inf ?http://localhost/index.html wget --mirror?http://localhost/index.html(9)下載頁面內(nèi)聯(lián)資源
短格式:-p
長格式:--page-requisites
此選項導(dǎo)致Wget去下載為顯示這個頁面所有必要的文件和資源,包括內(nèi)聯(lián)圖像、聲音、引用的樣式表等,以保證離線時能正確地顯示頁面。通常,當(dāng)下載單個HTML頁面時,不會下載正確顯示它所需的任何必要的文檔。將“-r”和“-l”一起使用會有所幫助,但是由于Wget通常不區(qū)分外部文檔和內(nèi)聯(lián)文檔,因此通常不會下載這些缺少需求的“葉子文檔”。下載頁面所有資源命令格式如下:
wget --page-requisites http://localhost/index.html(10)鏡像網(wǎng)站+離線瀏覽
Wget可以用來下載一個完整的站點,自動轉(zhuǎn)換頁面鏈接以支持離線瀏覽。使用的選項如下:
--mirror:開啟鏡像所需要的所有選項。
--no-parent:在遞歸檢索時,永遠(yuǎn)不要提升到父目錄,只下載當(dāng)前目錄結(jié)構(gòu)下的文件。
--convert-links:將所有鏈接轉(zhuǎn)換成本地鏈接以便離線瀏覽。
--page-requisites:下載內(nèi)聯(lián)樣式文件、圖片等所有必需的文件。
命令格式如下:
wget --mirror?--no-parent --convert-links --page-requisites http://localhost/ wget --recursive --level=inf --timestamping --no-parent --convert-links --page-requisites http://localhost/總結(jié)
以上是生活随笔為你收集整理的Wget下载网页与镜像网站的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。