Wget documento di output e intestazioni in STDOUT


116

Sto cercando di produrre il corpo del documento e le sue intestazioni su stdout con wget by wget -S -O - http://google.com

ma mostra solo documenti html.

Grazie

UPD:

Ha funzionato wget --save-headers --output-document - http://google.com

wget --version mostra GNU Wget 1.11.4 Red Hat modificato


Ho appena provato che ha funzionato alla grande, ma in --save-headersrealtà era-save-headers
Chris Rymer

e wget -qS <url>solo per le intestazioni http (eq. a )curl -IL

Risposte:


167

Prova quanto segue, senza intestazioni aggiuntive

wget -qO- www.google.com

Nota il trailing -. Questo fa parte del normale argomento del comando per -Oeseguire il cat out in un file, ma poiché non usiamo >per indirizzare a un file, viene inviato alla shell. Puoi usare -qO-o -qO -.


2
qual è l'extra - dopo la O?
codecowboy

1
@ codecowboy ho abbellito la risposta per spiegare il trattino in più.
Joseph Lust

3
l' -Sopzione non era supportata sul mio alpinecontenitore Linux. L'ho omesso ed è andato tutto bene
Christian Bongiorno

1
Secondo la pagina man GNU "Se - viene utilizzato come file, i documenti verranno stampati sullo standard output, disabilitando la conversione del collegamento." È scritto più chiaramente con uno spazio bianco precedente.
Josh Habdas

4
Questa risposta non ha alcun senso. OP ha chiesto di mostrare le intestazioni, non di nasconderle
aexl

45

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

Puoi provare a reindirizzare l'errore standard allo 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' -qopzione sopprime la barra di avanzamento e alcune altre parti fastidiosamente loquaci wgetdell'output.


1
l' -Sopzione non era supportata sul mio alpinecontenitore Linux. L'ho omesso ed è andato tutto bene
Christian Bongiorno

@ChristianBongiorno Puoi installare un wget appropriato con apk add wget, altrimenti viene utilizzata solo una versione busybox.
AndreKR

22

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 devi aggiornare il tuo wget ( ~$ wget --version GNU Wget 1.14 built on linux-gnu.)


7

Questo ha funzionato per me per la stampa della risposta con l'intestazione:

wget --server-response http://www.example.com/

1
Potresti voler aggiungere --spiderarg. Questa utile causa non scarica alcun contenuto della pagina.
Antonio Feitosa

3

Questo non funzionerà:

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

poiché i reindirizzamenti vengono valutati da destra a sinistra, questo invia html a wget.txt e l'intestazione a STDOUT:

wget -q -S -O - google.com 2>&1 1>wget.txt
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.