Wget Ausgabedokument und Header zu STDOUT


114

Ich versuche, den Dokumentkörper und seine Überschriften so auszugeben, dass sie mit wget by standardisiert werden wget -S -O - http://google.com

Es wird jedoch nur ein HTML-Dokument angezeigt.

Vielen Dank

UPD:

Hat das geklappt wget --save-headers --output-document - http://google.com

wget --version zeigt GNU Wget 1.11.4 Red Hat geändert


Ich habe gerade versucht, dass dies großartig funktioniert hat, aber es --save-headerswar tatsächlich-save-headers
Chris Rymer

und wget -qS <url>nur für http- Header (Gl. bis curl -IL)

Antworten:


165

Versuchen Sie Folgendes, keine zusätzlichen Header

wget -qO- www.google.com

Beachten Sie das Nachlaufen -. Dies ist Teil des normalen Befehlsarguments für -Odas Auslagern in eine Datei. Da wir jedoch nicht >zum Weiterleiten in eine Datei verwenden, wird es in die Shell ausgegeben. Sie können -qO-oder verwenden -qO -.


2
Was ist das Extra - nach dem O?
Codecowboy

1
@codecowboy Ich habe die Antwort verschönert, um den zusätzlichen Strich zu erklären.
Joseph Lust

3
Die -SOption wurde auf meinem alpineLinux-Container nicht unterstützt . Ich habe es weggelassen und alles war gut
Christian Bongiorno

1
Laut der GNU-Manpage "Wenn - als Datei verwendet wird, werden Dokumente in der Standardausgabe gedruckt, wodurch die Linkkonvertierung deaktiviert wird." Es ist klarer mit einem vorangestellten Leerzeichen geschrieben.
Josh Habdas

3
Diese Antwort macht keinen Sinn. OP bat darum, Header
anzuzeigen

45

wget -S -O - http://google.comfunktioniert für mich wie erwartet, aber mit einer Einschränkung: Die Header gelten als Debugging-Informationen und werden als solche an den Standardfehler und nicht an die Standardausgabe gesendet . Wenn Sie die Standardausgabe in eine Datei oder einen anderen Prozess umleiten, erhalten Sie nur den Dokumentinhalt.

Sie können versuchen, den Standardfehler als mögliche Lösung auf die Standardausgabe umzuleiten. Zum Beispiel in bash:

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

oder

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

Die -qOption unterdrückt den Fortschrittsbalken und einige andere störend gesprächige Teile der wgetAusgabe.


1
Die -SOption wurde auf meinem alpineLinux-Container nicht unterstützt . Ich habe es weggelassen und alles war gut
Christian Bongiorno

@ChristianBongiorno Sie können ein geeignetes Wget mit installieren apk add wget, andernfalls wird nur eine Busybox-Version verwendet.
AndreKR

21

Es funktioniert hier:

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

Vielleicht musst du dein wget aktualisieren ( ~$ wget --version GNU Wget 1.14 built on linux-gnu.)


7

Dies funktionierte für mich beim Drucken der Antwort mit Header:

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

1
Vielleicht möchten Sie --spiderarg hinzufügen . Diese nützliche Ursache lädt keinen Seiteninhalt herunter.
Antonio Feitosa

3

Dies wird nicht funktionieren:

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

Da Weiterleitungen von rechts nach links ausgewertet werden, wird HTML an wget.txt und der Header an STDOUT gesendet:

wget -q -S -O - google.com 2>&1 1>wget.txt
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.