2012-08-25 45 views
52

我試圖輸出文檔身體和頭部被wget -S -O - http://google.comWget的輸出文檔和頭到STDOUT

與wget的到stdout,但只顯示HTML的Docment。

感謝

UPD:

工作這麼wget --save-headers --output-document - http://google.com

wget --version顯示GNU Wget的1.11.4紅帽修改

回答

13

它在這裏工作:

$ wget -S -O - http://google.com 
HTTP request sent, awaiting response... 
    HTTP/1.1 301 Moved Permanently 
    Location: http://www.google.com/ 
    Content-Type: text/html; charset=UTF-8 
    Date: Sat, 25 Aug 2012 10:15:38 GMT 
    Expires: Mon, 24 Sep 2012 10:15:38 GMT 
    Cache-Control: public, max-age=2592000 
    Server: gws 
    Content-Length: 219 
    X-XSS-Protection: 1; mode=block 
    X-Frame-Options: SAMEORIGIN 
Location: http://www.google.com/ [following] 
--2012-08-25 12:20:29-- http://www.google.com/ 
Resolving www.google.com (www.google.com)... 173.194.69.99, 173.194.69.104, 173.194.69.106, ... 

    ...skipped a few more redirections ... 

    [<=>                                  ] 0   --.-K/s    
<!doctype html><html itemscope="itemscope" itemtype="http://schema.org/WebPage"><head><meta itemprop="image" content="/images/google_favicon_128.png"><ti 

... skipped ... 

也許你需要更新你的wget (~$ wget --version GNU Wget 1.14 built on linux-gnu.

33

wget -S -O - http://google.com按預期工作對我來說,一個警告:頭被認爲是調試信息,因此他們被送到標準錯誤而不是標準輸出。如果您將標準輸出重定向到文件或其他進程,則只能獲取文檔內容。

您可以嘗試將標準錯誤重定向到標準輸出作爲可能的解決方案。例如,在bash

$ wget -q -S -O - 2>&1 | grep ... 

$ wget -q -S -O - 1>wget.txt 2>&1 

-q選項禁止進度條和wget輸出的一些其他煩人健談部分。

+0

感謝您指出的標準錯誤問題,和-q標誌。 –

+0

'-S'選項在我的'alpine' linux容器上不受支持。我省略了,一切都很好 –

76

嘗試以下,沒有多餘的頭

wget -qO- www.google.com 

注後-。這是-O的常規命令參數的一部分,以便剔除文件,但由於我們不使用>來指向文件,因此它會發送到shell。您可以使用-qO--qO -

+1

什麼是額外的 - 在O之後? – codecowboy

+1

@codecowboy我點綴瞭解釋額外短劃線的答案。 –

+2

'-S'選項在我的'alpine' linux容器上不受支持。我省略了,一切都很好 –

0

這是行不通的:

wget -q -S -O - google.com 1>wget.txt 2>&1 

因爲重定向從右到左的評估,這將HTML到wget.txt和頭到STDOUT:

wget -q -S -O - google.com 2>&1 1>wget.txt