Dapatkan dokumen keluaran dan tajuk ke STDOUT

116

Saya mencoba untuk mengeluarkan badan dokumen dan tajuknya ke stdout dengan wget by wget -S -O - http://google.com

tetapi hanya menampilkan dokumen html.

Terima kasih

UPD:

Berhasil ini wget --save-headers --output-document - http://google.com

wget --version menunjukkan GNU Wget 1.11.4 Red Hat dimodifikasi

pengguna1239398
sumber
Saya baru saja mencoba ini bekerja dengan baik tetapi --save-headerssebenarnya-save-headers
Chris Rymer
dan wget -qS <url>hanya untuk http header (persamaan untuk curl -IL)

Jawaban:

167

Coba yang berikut ini, tidak ada header tambahan

wget -qO- www.google.com

Perhatikan jejaknya -. Ini adalah bagian dari argumen perintah normal -Ountuk memasukkan file, tetapi karena kita tidak menggunakan >untuk mengarahkan ke file, itu keluar ke shell. Anda dapat menggunakan -qO-atau -qO -.

Joseph Lust
sumber
2
apa ekstra - setelah O?
codecowboy
1
@codecowboy Saya memperindah jawaban untuk menjelaskan tanda hubung ekstra.
Joseph Lust
3
yang -Spilihan tidak didukung pada saya alpinekontainer linux. Saya menghilangkannya dan semuanya baik
Christian Bongiorno
1
Menurut halaman manual GNU "Jika - digunakan sebagai file, dokumen akan dicetak ke keluaran standar, menonaktifkan konversi tautan." Ini lebih jelas ditulis dengan spasi sebelumnya.
Josh Habdas
4
Jawaban ini tidak masuk akal. OP diminta untuk menampilkan tajuk, bukan menyembunyikannya
kecuali
45

wget -S -O - http://google.comberfungsi seperti yang diharapkan untuk saya, tetapi dengan peringatan: header dianggap sebagai informasi debugging dan karena itu dikirim ke kesalahan standar daripada keluaran standar. Jika Anda mengarahkan output standar ke file atau proses lain, Anda hanya akan mendapatkan konten dokumen.

Anda dapat mencoba mengalihkan kesalahan standar ke keluaran standar sebagai solusi yang mungkin. Misalnya, di bash:

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

atau

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

The -qpilihan menekan progress bar dan beberapa bagian mengganggu cerewet lain dari wgetoutput.

thkala
sumber
1
yang -Spilihan tidak didukung pada saya alpinekontainer linux. Saya menghilangkannya dan semuanya baik
Christian Bongiorno
@ChristianBongiorno Anda dapat menginstal wget yang sesuai apk add wget, jika tidak hanya versi busybox yang digunakan.
AndreKR
22

Ini berfungsi di sini:

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

mungkin Anda perlu memperbarui wget ( ~$ wget --version GNU Wget 1.14 built on linux-gnu.) Anda

BeniBela
sumber
7

Ini berhasil bagi saya untuk mencetak respons dengan tajuk:

wget --server-response http://www.example.com/
Abhishek saharn
sumber
1
Anda mungkin ingin menambahkan --spiderarg. Ini berguna karena tidak mengunduh konten halaman apa pun.
Antonio Feitosa
3

Ini tidak akan berhasil:

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

karena pengalihan dievaluasi dari kanan ke kiri, ini mengirimkan html ke wget.txt dan header ke STDOUT:

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