wget 是一個(gè)下載網(wǎng)頁" />

国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

18143453325 在線咨詢 在線咨詢
18143453325 在線咨詢
所在位置: 首頁 > 營銷資訊 > 網(wǎng)站運(yùn)營 > 七個(gè)使用 wget 命令的技巧 | Linux 中國

七個(gè)使用 wget 命令的技巧 | Linux 中國

時(shí)間:2023-04-21 11:45:01 | 來源:網(wǎng)站運(yùn)營

時(shí)間:2023-04-21 11:45:01 來源:網(wǎng)站運(yùn)營

七個(gè)使用 wget 命令的技巧 | Linux 中國:
用你的 Linux 終端中從互聯(lián)網(wǎng)上下載文件。
(本文字?jǐn)?shù):4878,閱讀時(shí)長大約:6 分鐘)

wget 是一個(gè)下載網(wǎng)頁文件的免費(fèi)工具。它將互聯(lián)網(wǎng)上的數(shù)據(jù)保存到一個(gè)文件或展示在終端上。實(shí)際上這也是像 Firefox 或 Chromium 這樣的網(wǎng)頁瀏覽器的工作原理。有一個(gè)區(qū)別是,網(wǎng)頁瀏覽器默認(rèn)將網(wǎng)頁 渲染(render)在圖形窗口中,并且通常需要用戶主動(dòng)來操作它們。而 wget 工具是無交互的使用方式,也就是說你可以使用腳本或定期使用 wget 來下載文件,不論你人是否在電腦面前。

使用 wget 下載文件

你可以通過提供一個(gè)特定 URL 的鏈接,用 wget 下載一個(gè)文件。如果你提供一個(gè)默認(rèn)為 index.html 的 URL,那么就會(huì)下載該索引頁。默認(rèn)情況下,文件會(huì)被下載到你當(dāng)前的工作目錄,并保持原來的名字。

$ wget http://example.com--2021-09-20 17:23:47-- http://example.com/Resolving example.com... 93.184.216.34, 2606:2800:220:1:248:1893:25c8:1946Connecting to example.com|93.184.216.34|:80... connected.HTTP request sent, awaiting response... 200 OKLength: 1256 (1.2K) [text/html]Saving to: 'index.html'通過使用 --output-document- 符號,你可以指示 wget 將數(shù)據(jù)發(fā)送到 標(biāo)準(zhǔn)輸出(stdout)

$ wget http://example.com --output-document - | head -n4<!doctype html><html><head> <title>Example Domain</title>你可以使用 --output-document 選項(xiàng)(簡寫為 -O)將下載文件命名為任何你想要的名稱:

$ wget http://example.com --output-document foo.html

斷點(diǎn)續(xù)傳

如果你正在下載一個(gè)超大文件,你可能會(huì)遇到中斷下載的情況。使用 --continue(簡寫為 -c),wget 可以確定從文件的哪個(gè)位置開始繼續(xù)下載。也就是說,下次你在下載一個(gè) 4 GB 的 Linux 發(fā)行版 ISO 時(shí),如果出現(xiàn)了錯(cuò)誤導(dǎo)致中斷,你不必重新從頭開始。

$ wget --continue https://example.com/linux-distro.iso

下載一系列的文件

如果你要下載的不是單個(gè)大文件,而是一系列的文件,wget 也能提供很好的幫助。假如你知道要下載文件的路徑以及文件名的通用范式,你可以使用 Bash 語法指示一個(gè)數(shù)字范圍的起始和終點(diǎn)來表示這一系列文件名:

$ wget http://example.com/file_{1..4}.webp

鏡像整個(gè)站點(diǎn)

使用 --mirror 選項(xiàng)你可以下載整個(gè)站點(diǎn),包括它的目錄結(jié)構(gòu)。這與使用選項(xiàng) --recursive --level inf --timestamping --no-remove-listing 的效果是一樣的,該選項(xiàng)表明可以進(jìn)行無限制的遞歸,得到你指定域下的所有內(nèi)容。但你也可能會(huì)得到比預(yù)期多得多的內(nèi)容,這取決于站點(diǎn)本身的老舊程度。

如果你正在使用 wget 來打包整個(gè)站點(diǎn),選項(xiàng) --no-cookies --page-requisites --convert-links 非常有用,它可以確保打包的站點(diǎn)是全新且完整的,站點(diǎn)副本或多或少是 自包含的(self-contained)。

修改 HTML 標(biāo)頭

在計(jì)算機(jī)發(fā)送的通信報(bào)文里含有大量用于數(shù)據(jù)交換的 元數(shù)據(jù)(metadata)。HTTP 標(biāo)頭是初始數(shù)據(jù)的組成部分。當(dāng)你瀏覽某個(gè)站點(diǎn)時(shí),你的瀏覽器會(huì)發(fā)送 HTTP 請求標(biāo)頭。使用 --debug 選項(xiàng)可以查看 wget 為每個(gè)請求發(fā)送了什么樣的標(biāo)頭信息:

$ wget --debug example.com---request begin---GET / HTTP/1.1User-Agent: Wget/1.19.5 (linux-gnu)Accept: */*Accept-Encoding: identityHost: example.comConnection: Keep-Alive---request end---你可以使用 --header 選項(xiàng)修改請求標(biāo)頭。實(shí)際上經(jīng)常使用這種方式來模仿某特定瀏覽器,來測試或兼容某些編碼糟糕、只能與特定代理通信的站點(diǎn)。

讓請求被識別為來自 Windows 系統(tǒng)的 Microsoft Edge:

$ wget --debug --header="User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 Edg/91.0.864.59" http://example.com你也可以假裝為某個(gè)移動(dòng)設(shè)備:

$ wget --debug --header="User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 13_5_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1.1 Mobile/15E148 Safari/604.1" http://example.com

查看響應(yīng)標(biāo)頭

與瀏覽器發(fā)送請求標(biāo)頭的方式一樣,響應(yīng)也包含有標(biāo)頭信息。你可以使用 --debug 選項(xiàng)來查看響應(yīng)中的標(biāo)頭信息:

$ wget --debug example.com[...]---response begin---HTTP/1.1 200 OKAccept-Ranges: bytesAge: 188102Cache-Control: max-age=604800Content-Type: text/html; charset=UTF-8Etag: "3147526947"Server: ECS (sab/574F)Vary: Accept-EncodingX-Cache: HITContent-Length: 1256---response end---200 OKRegistered socket 3 for persistent reuse.URI content encoding = 'UTF-8'Length: 1256 (1.2K) [text/html]Saving to: 'index.html'

處理 301 響應(yīng)

200 響應(yīng)碼意味著一切都在預(yù)料之中。而 301 響應(yīng)則表示 URL 已經(jīng)被永久遷移到了另外一個(gè)地方。這是站點(diǎn)管理員的一種常用手段,內(nèi)容遷移后,為訪問舊地址的用戶留下尋找新地址的“線索”。wget 會(huì)默認(rèn)跟隨 重定向(redirect),這也是大部分情況下用戶所希望的。

當(dāng)然,你可以使用 --max-redirect 選項(xiàng),用于控制 wget 默認(rèn)處理 301 響應(yīng)重定向的次數(shù)。設(shè)置為 0 意味著不會(huì)自動(dòng)重定向到新的地址:

$ wget --max-redirect 0 http://iana.org--2021-09-21 11:01:35-- http://iana.org/Resolving iana.org... 192.0.43.8, 2001:500:88:200::8Connecting to iana.org|192.0.43.8|:80... connected.HTTP request sent, awaiting response... 301 Moved PermanentlyLocation: https://www.iana.org/ [following]0 redirections exceeded.同時(shí),你也可以設(shè)置為其他的數(shù)值來控制 wget 能重定向多少次。

展開 URL 縮寫

使用--max-redirect 選項(xiàng)用于在實(shí)際訪問之前查看 URL 縮寫(shortened URL)非常有用??s寫 URL 可用于用戶無法完整拷貝和粘貼一個(gè)長 URL 時(shí)的 印刷媒體(print media),或是具有字?jǐn)?shù)限制的社交網(wǎng)絡(luò)(在類似 Mastondon 這種現(xiàn)代開源的社交網(wǎng)絡(luò)上這并不是一個(gè)問題)。這種縮寫具有一定的風(fēng)險(xiǎn),因?yàn)楸举|(zhì)上這些目的地是隱藏的。組合使用 --head 選項(xiàng)和 --location 選項(xiàng)來來查看 HTTP 頭部并解開最終的目的地,你可以在不加載整個(gè)資源的情況下查看到縮寫 URL 的完整內(nèi)容:

$ wget --max-redirect 0 "https://bit.ly/2yDyS4T"--2021-09-21 11:32:04-- https://bit.ly/2yDyS4TResolving bit.ly... 67.199.248.10, 67.199.248.11Connecting to bit.ly|67.199.248.10|:443... connected.HTTP request sent, awaiting response... 301 Moved PermanentlyLocation: http://example.com/ [following]0 redirections exceeded.Location 開始的倒數(shù)第二行輸出,展示了實(shí)際的目的地。

使用 wget

若你開始考慮使用單個(gè)命令來實(shí)現(xiàn)整個(gè)網(wǎng)站訪問的過程,wget 可以快速高效的幫你獲取互聯(lián)網(wǎng)上的信息,而不用在圖形界面上耗費(fèi)精力。為了幫你將它構(gòu)造在你平常的工作流中,我們創(chuàng)建了一個(gè) wget 常用使用方式和語法清單,包括使用它來查詢 API 的概述。在這里下載 Linux wget 速查表。


來源: https://opensource.com/article/21/10/linux-wget-command

作者:Seth Kenlon 選題:lujun9972 譯者:zengyi1001 校對:wxy

本文由 LCTT 原創(chuàng)編譯,Linux中國 榮譽(yù)推出

關(guān)鍵詞:技巧,中國,命令,使用

74
73
25
news

版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點(diǎn)擊下載Chrome瀏覽器
關(guān)閉