Wget wyprowadza dokument i nagłówki do STDOUT

116

Próbuję wyprowadzić treść dokumentu i jego nagłówki na standardowe wyjście za pomocą wget przez wget -S -O - http://google.com

ale pokazuje tylko dokument HTML.

Dzięki

UPD:

Pracowałem nad tym wget --save-headers --output-document - http://google.com

wget --version pokazuje zmodyfikowaną wersję GNU Wget 1.11.4 Red Hat

user1239398
źródło
Właśnie spróbowałem, to zadziałało świetnie, ale --save-headerstak naprawdę było-save-headers
Chris Rymer
i wget -qS <url>tylko dla nagłówków http (np. do )curl -IL

Odpowiedzi:

168

Spróbuj wykonać następujące czynności, bez dodatkowych nagłówków

wget -qO- www.google.com

Zwróć uwagę na końcowe -. Jest to część zwykłego argumentu polecenia dla -Owyprowadzenia do pliku, ale ponieważ nie używamy >do bezpośredniego kierowania do pliku, jest on wysyłany do powłoki. Możesz użyć -qO-lub -qO -.

Joseph Lust
źródło
2
co to za dodatek - po O?
codecowboy
1
@codecowboy Udekorowałem odpowiedź, aby wyjaśnić dodatkowy myślnik.
Joseph Lust
3
-Sopcja nie była obsługiwana na mój alpinelinux pojemniku. Pominąłem to i wszystko było dobrze
Christian Bongiorno
1
Zgodnie ze stroną podręcznika GNU „Jeśli - jest używane jako plik, dokumenty będą drukowane na standardowe wyjście, wyłączając konwersję linków”. Jest to wyraźniej napisane z poprzedzającą spacją.
Josh Habdas
4
Ta odpowiedź nie ma sensu. OP poprosił o pokazanie nagłówków, a nie ich ukrycie
aexl
45

wget -S -O - http://google.comdziała zgodnie z oczekiwaniami, ale z zastrzeżeniem: nagłówki są uważane za informacje debugowania i jako takie są wysyłane na standardowe wyjście błędu, a nie na standardowe wyjście. Jeśli przekierowujesz standardowe wyjście do pliku lub innego procesu, otrzymasz tylko zawartość dokumentu.

Możesz spróbować przekierować standardowy błąd na standardowe wyjście jako możliwe rozwiązanie. Na przykład w bash:

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

lub

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

Ta -qopcja wyłącza pasek postępu i inne irytująco gadatliwe części wgetwyniku.

thkala
źródło
1
-Sopcja nie była obsługiwana na mój alpinelinux pojemniku. Pominąłem to i wszystko było dobrze
Christian Bongiorno
@ChristianBongiorno Możesz zainstalować odpowiedni wget za pomocą apk add wget, w przeciwnym razie używana jest tylko wersja busybox.
AndreKR
22

Działa tutaj:

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

być może musisz zaktualizować swój wget ( ~$ wget --version GNU Wget 1.14 built on linux-gnu.)

BeniBela
źródło
7

To zadziałało dla mnie do drukowania odpowiedzi z nagłówkiem:

wget --server-response http://www.example.com/
Abhishek saharn
źródło
1
Możesz chcieć dodać --spiderargument. Ta przydatna przyczyna nie pobiera żadnej zawartości strony.
Antonio Feitosa
3

To nie zadziała:

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

ponieważ przekierowania są oceniane od prawej do lewej, to wysyła html do wget.txt, a nagłówek do STDOUT:

wget -q -S -O - google.com 2>&1 1>wget.txt
maniac_on_moon
źródło