Виведіть вихідний документ та заголовки до 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
Кріс Раймер

і wget -qS <url>лише для заголовків http (екв. до )curl -IL

Відповіді:


168

Спробуйте наступне, без зайвих заголовків

wget -qO- www.google.com

Зверніть увагу на крок -. Це частина звичайного аргументу команди для -Oвиведення файлу, але оскільки ми його не використовуємо> для прямого переходу на файл, він виходить до оболонки. Ви можете використовувати -qO-або -qO -.


2
що додаткового - після О?
codecowboy

1
@codecowboy Я прикрасив відповідь, щоб пояснити додатковий тире.
Йосип Похоть

3
-Sваріант не був підтриманий на моєму alpineLinux контейнера. Я пропустив це, і все було добре
Крістіан Бонгіорно

1
Згідно з головною сторінкою GNU "If - використовується як файл, документи будуть надруковані до стандартного виводу, відключаючи перетворення посилання". Він чіткіше написаний з попереднім пробілом.
Джош Хабдас

4
Ця відповідь не має жодного сенсу. ОП попросили показати заголовки, а не приховувати їх
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варіант не був підтриманий на моєму alpineLinux контейнера. Я пропустив це, і все було добре
Крістіан Бонгіорно

@ChristianBongiorno Ви можете встановити належну програму wget apk add wget, інакше використовується лише версія зайнятої скриньки .
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аргумент. Ця корисна причина не завантажує жоден вміст сторінки.
Антоніо Фейтоса

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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.