Wget

使用 wget,獲取 gzip 壓縮版本而不是實際 HTML 的正確命令是什麼

  • October 28, 2020

我偶然發現了這個談論這個的網站。

那麼當通過獲取 gzip 版本下載整個網站時,正確的命令是什麼?

我已經測試過這個命令,但我不知道 wget 是否真的得到了 gzip 壓縮版本:

wget --header="accept-encoding: gzip" -m -Dlinux.about.com -r -q -R gif,png,jpg,jpeg,GIF,PNG,JPG,JPEG,js,rss,xml,feed,.tar.gz,.zip,rar,.rar,.php,.txt -t 1 http://linux.about.com/

如果您請求 gzip 的內容(使用正確的 accept-encoding: gzip 標頭),那麼我的理解是 wget 無法讀取內容。因此,您最終會在磁碟上得到一個 gzip 壓縮文件,用於您點擊的第一頁,但沒有其他內容。

即,您不能使用 wget 來請求 gzip 壓縮的內容並同時遞歸整個站點。

我認為有一個更新檔允許 wget 支持此功能,但它不在預設分發版本中。

如果您包含 -S 標誌,您可以判斷 Web 伺服器是否使用正確類型的內容進行響應。例如,

wget -S --header="accept-encoding: gzip" wordpress.com
--2011-06-17 16:06:46--  http://wordpress.com/
Resolving wordpress.com (wordpress.com)... 72.233.104.124, 74.200.247.60, 76.74.254.126
Connecting to wordpress.com (wordpress.com)|72.233.104.124|:80... connected.
HTTP request sent, awaiting response...
 HTTP/1.1 200 OK
 Server: nginx
 Date: Fri, 17 Jun 2011 15:06:47 GMT
 Content-Type: text/html; charset=UTF-8
 Connection: close
 Vary: Accept-Encoding
 Last-Modified: Fri, 17 Jun 2011 15:04:57 +0000
 Cache-Control: max-age=190, must-revalidate
 Vary: Cookie
 X-hacker: If you're reading this, you should visit automattic.com/jobs and apply to join the fun, mention this header.
 X-Pingback: http://wordpress.com/xmlrpc.php
 Link: <http://wp.me/1>; rel=shortlink
 X-nananana: Batcache
 Content-Encoding: gzip
Length: unspecified [text/html]

內容編碼清楚地說明了 gzip,但是對於 linux.about.com(目前),

wget -S --header="accept-encoding: gzip" linux.about.com
--2011-06-17 16:12:55--  http://linux.about.com/
Resolving linux.about.com (linux.about.com)... 207.241.148.80
Connecting to linux.about.com (linux.about.com)|207.241.148.80|:80... connected.
HTTP request sent, awaiting response...
 HTTP/1.1 200 OK
 Date: Fri, 17 Jun 2011 15:12:56 GMT
 Server: Apache
 Set-Cookie: TMog=B6HFCs2H20kA1I4N; domain=.about.com; path=/; expires=Sat, 22-Sep-12 14:19:35 GMT
 Set-Cookie: Mint=B6HFCs2H20kA1I4N; domain=.about.com; path=/
 Set-Cookie: zBT=1; domain=.about.com; path=/
 Vary: *
 PRAGMA: no-cache
 P3P: CP="IDC DSP COR DEVa TAIa OUR BUS UNI"
 Cache-Control: max-age=-3600
 Expires: Fri, 17 Jun 2011 14:12:56 GMT
 Connection: close
 Content-Type: text/html
Length: unspecified [text/html]

它正在返回文本/html。

由於一些較舊的瀏覽器仍然存在 gzip 編碼內容的問題,因此許多站點僅根據瀏覽器辨識啟用它。他們通常預設將其關閉,並且僅在他們知道瀏覽器可以支持時才將其打開 - 而且他們通常不會在該列表中包含 wget 。這意味著您可能會發現 wget 永遠不會返回 gzip 內容,即使該站點似乎為您的瀏覽器這樣做。

引用自:https://unix.stackexchange.com/questions/15176