Wget de documento de saída e cabeçalhos para STDOUT

116

Estou tentando enviar o corpo do documento e seus cabeçalhos para stdout com wget por wget -S -O - http://google.com

mas mostra apenas docment html.

obrigado

UPD:

Trabalhou isso wget --save-headers --output-document - http://google.com

wget --version mostra GNU Wget 1.11.4 Red Hat modificado

user1239398
fonte
Acabei de experimentar e funcionou muito bem, mas --save-headersna verdade era-save-headers
Chris Rymer,
e wget -qS <url>apenas para cabeçalhos http (eq. a )curl -IL

Respostas:

168

Tente o seguinte, sem cabeçalhos extras

wget -qO- www.google.com

Observe o rastro -. Isso é parte do argumento de comando normal para direcionar para um arquivo, -Omas como não costumamos >direcionar para um arquivo, ele vai para o shell. Você pode usar -qO-ou -qO -.

Joseph Lust
fonte
2
qual é o extra - após o O?
codecowboy de
1
@codecowboy Eu embelezei a resposta para explicar o traço extra.
Joseph Lust
3
a -Sopção não era suportada em meu alpinecontêiner Linux. Eu omiti e estava tudo bem
Christian Bongiorno
1
De acordo com a página do manual GNU “Se - for usado como arquivo, os documentos serão impressos na saída padrão, desabilitando a conversão de link”. É mais claramente escrito com um espaço em branco anterior.
Josh Habdas
4
Essa resposta não faz sentido. OP pediu para mostrar cabeçalhos, não ocultá-los
aexl
45

wget -S -O - http://google.comfunciona conforme o esperado para mim, mas com uma advertência: os cabeçalhos são considerados informações de depuração e, como tal, são enviados para o erro padrão em vez da saída padrão. Se você estiver redirecionando a saída padrão para um arquivo ou outro processo, obterá apenas o conteúdo do documento.

Você pode tentar redirecionar o erro padrão para a saída padrão como uma solução possível. Por exemplo, em bash:

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

ou

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

A -qopção suprime a barra de progresso e algumas outras partes irritantemente tagarelas da wgetsaída.

thkala
fonte
1
a -Sopção não era suportada em meu alpinecontêiner Linux. Eu omiti e estava tudo bem
Christian Bongiorno
@ChristianBongiorno Você pode instalar um wget adequado com apk add wget, caso contrário, apenas uma versão do busybox é usada.
AndreKR
22

Funciona aqui:

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

talvez você precise atualizar seu wget ( ~$ wget --version GNU Wget 1.14 built on linux-gnu.)

BeniBela
fonte
7

Isso funcionou para mim para imprimir a resposta com o cabeçalho:

wget --server-response http://www.example.com/
Abhishek Saharn
fonte
1
Você pode querer adicionar --spiderarg. Esta causa útil não baixar nenhum conteúdo da página.
Antonio Feitosa
3

Isso não vai funcionar:

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

como os redirecionamentos são avaliados da direita para a esquerda, isso envia html para wget.txt e o cabeçalho para STDOUT:

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