Wget เอกสารเอาต์พุตและส่วนหัวไปยัง STDOUT


116

ฉันกำลังพยายามส่งออกเนื้อหาของเอกสารและส่วนหัวเป็น stdout ด้วย wget by wget -S -O - http://google.com

แต่จะแสดงเฉพาะเอกสาร html

ขอบคุณ

UPD:

ทำงานนี้ wget --save-headers --output-document - http://google.com

wget --version แสดง GNU Wget 1.11.4 Red Hat ที่แก้ไข


ฉันเพิ่งลองสิ่งนี้ได้ผลดี แต่--save-headersจริงๆแล้ว-save-headers
Chris Rymer

และwget -qS <url>สำหรับเฉพาะส่วนหัวhttp (เช่นถึง)curl -IL

คำตอบ:


168

ลองทำสิ่งต่อไปนี้โดยไม่มีส่วนหัวเพิ่มเติม

wget -qO- www.google.com

-หมายเหตุต่อท้าย นี่เป็นส่วนหนึ่งของอาร์กิวเมนต์คำสั่งปกติสำหรับ-Ocat out ไปยังไฟล์ แต่เนื่องจากเราไม่ได้ใช้>เพื่อส่งตรงไปยังไฟล์จึงออกไปที่เชลล์ คุณสามารถใช้-qO-หรือ-qO -.


2
อะไรคือความพิเศษ - หลัง O?
codecowboy

1
@codecowboy ฉันแต่งคำตอบเพื่ออธิบายเส้นประพิเศษ
Joseph Lust

3
-Sตัวเลือกที่ไม่ได้รับการสนับสนุนบนของalpineภาชนะลินุกซ์ ฉันละเว้นมันไปและทุกอย่างก็ดี
Christian Bongiorno

1
ตามหน้าคน GNU“ ถ้า - ถูกใช้เป็นไฟล์เอกสารจะถูกพิมพ์ไปยังเอาต์พุตมาตรฐานปิดใช้งานการแปลงลิงก์” มีการเขียนด้วยช่องว่างก่อนหน้าอย่างชัดเจนยิ่งขึ้น
Josh Habdas

4
คำตอบนี้ไม่สมเหตุสมผล OP ขอให้แสดงส่วนหัวไม่ซ่อน
aexl

45

wget -S -O - http://google.comทำงานได้ตามที่คาดไว้สำหรับฉันแต่มีข้อแม้: ส่วนหัวถือเป็นข้อมูลการดีบักและด้วยเหตุนี้จึงถูกส่งไปยังข้อผิดพลาดมาตรฐานแทนที่จะเป็นเอาต์พุตมาตรฐาน หากคุณกำลังเปลี่ยนทิศทางเอาต์พุตมาตรฐานไปยังไฟล์หรือกระบวนการอื่นคุณจะได้รับเฉพาะเนื้อหาของเอกสารเท่านั้น

คุณสามารถลองเปลี่ยนเส้นทางข้อผิดพลาดมาตรฐานไปยังเอาต์พุตมาตรฐานเพื่อเป็นแนวทางแก้ไขได้ ตัวอย่างเช่นในbash:

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

หรือ

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

-qตัวเลือกยับยั้งแถบความคืบหน้าและบางส่วนช่างพูดรำคาญอื่น ๆ ของwgetการส่งออก


1
-Sตัวเลือกที่ไม่ได้รับการสนับสนุนบนของalpineภาชนะลินุกซ์ ฉันละเว้นมันไปและทุกอย่างก็ดี
Christian Bongiorno

@ChristianBongiorno คุณสามารถติดตั้ง wget ที่เหมาะสมด้วยapk add wgetมิฉะนั้นจะใช้เฉพาะรุ่น busybox เท่านั้น
AndreKR

22

ทำงานได้ที่นี่:

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

บางทีคุณอาจต้องอัปเดต wget ของคุณ ( ~$ wget --version GNU Wget 1.14 built on linux-gnu.)


7

สิ่งนี้ใช้ได้ผลสำหรับฉันสำหรับการตอบสนองการพิมพ์ด้วยส่วนหัว:

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

1
คุณอาจต้องการเพิ่ม--spiderอาร์กิวเมนต์ สาเหตุที่เป็นประโยชน์นี้ไม่ต้องดาวน์โหลดเนื้อหาของหน้าใด ๆ
Antonio Feitosa

3

สิ่งนี้จะไม่ทำงาน:

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

เนื่องจากการเปลี่ยนเส้นทางถูกประเมินจากขวาไปซ้ายสิ่งนี้จะส่ง html ไปที่ wget.txt และส่วนหัวไปยัง STDOUT:

wget -q -S -O - google.com 2>&1 1>wget.txt
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.