147

我正在尝试通过执行将文档正文及其标题输出到 STDOUT

wget -S -O - http://google.com

...但它只显示 HTML 文档。

更新:可以使用

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

wget --version显示我的版本是GNU Wget 1.11.4 Red Hat modified.

4

6 回答 6

184

尝试以下,没有额外的标题

wget -qO- www.google.com

注意尾随-. 这是-Ocat out 到文件的常规命令参数的一部分,但由于我们不使用>to 指向文件,它会输出到 shell。您可以使用-qO--qO -

于 2014-04-08T02:27:51.880 回答
54

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输出中其他一些烦人的聊天部分。

于 2012-08-25T12:10:44.523 回答
27

它在这里工作:

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

于 2012-08-25T10:23:40.470 回答
14

这对我打印带有标题的响应很有用:

wget --server-response http://www.example.com/
于 2019-02-11T12:36:22.097 回答
6

这将不起作用:

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
于 2017-11-15T11:53:47.403 回答
-4

在不知道您要做什么的情况下,很难给出最佳答案。您可能想改用 curl。 curl -i yoururlhere将标题和文件打印到控制台。

于 2021-03-08T22:18:31.280 回答