2012-08-25 11 views
52

sto cercando di corpo del documento di output e le sue intestazioni stdout con wget da wget -S -O - http://google.comdocumento di output wget e intestazioni per STDOUT

ma mostra solo docment html.

Grazie

UPD:

lavorato questa wget --save-headers --output-document - http://google.com

wget --version mostra GNU Wget 1.11.4 Red Hat modificato

risposta

13

Funziona qui:

$ 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 ... 

forse avete bisogno per aggiornare la tua wget (~$ wget --version GNU Wget 1.14 built on linux-gnu.)

33

wget -S -O - http://google.com funziona come previsto per me, ma con un avvertimento: le intestazioni sono considerate informazioni di debug e come tali vengono inviati al errore standard piuttosto che lo standard output. Se stai reindirizzando l'output standard a un file o un altro processo, otterrai solo il contenuto del documento.

Si può provare a reindirizzare l'errore standard sullo standard output come possibile soluzione. Ad esempio, in bash:

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

o

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

L'opzione -q sopprime la barra di avanzamento e alcune altre parti fastidiosamente chatty del wget uscita.

+0

Grazie per aver ricordato la questione stderr e la bandiera -q. –

+0

l'opzione '-S' non era supportata sul mio contenitore linux' alpino'. Ho omesso e tutto era buono –

76

provare la seguente, senza intestazioni supplementari

wget -qO- www.google.com 

Annotare la finale -. Questo fa parte dell'argomento di comando normale per -O per eseguire il cat out su un file, ma poiché non usiamo > per dirigere su un file, esso si spegne nella shell. È possibile utilizzare -qO- o -qO -.

+1

qual è l'extra - dopo l'O? – codecowboy

+1

@codecowboy Ho impreziosito la risposta per spiegare il trattino in più. –

+2

l'opzione '-S' non era supportata sul mio contenitore linux' alpino'. Ho omesso e tutto andava bene –

0

Questo non funziona:

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

dal redirect vengono valutati da destra a sinistra, questo invia html wget.txt e l'intestazione a STDOUT:

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