Wget
使用 wget,獲取 gzip 壓縮版本而不是實際 HTML 的正確命令是什麼
我偶然發現了這個談論這個的網站。
那麼當通過獲取 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 內容,即使該站點似乎為您的瀏覽器這樣做。