Http Wget将文档和标题输出到标准输出

Http Wget将文档和标题输出到标准输出,http,wget,Http,Wget,我试图通过执行以下操作将文档正文及其标题输出到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它在这里工作: $ wget -S -O - http://google.com HTTP request

我试图通过执行以下操作将文档正文及其标题输出到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

它在这里工作:

    $ 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-S-O-http://google.com
HTTP请求已发送,正在等待响应。。。
HTTP/1.1 301永久移动
地点:http://www.google.com/
内容类型:text/html;字符集=UTF-8
日期:2012年8月25日星期六格林尼治标准时间10:15:38
到期时间:2012年9月24日星期一10:15:38 GMT
缓存控制:公共,最大年龄=2592000
服务器:gws
内容长度:219
X-XSS-Protection:1;模式=块
X-Frame-Options:SAMEORIGIN
地点:http://www.google.com/ [以下]
--2012-08-25 12:20:29--  http://www.google.com/
解析www.google.com(www.google.com)。。。173.194.69.99, 173.194.69.104, 173.194.69.106, ...
…跳过了更多的重定向。。。
[]0--K/s

wget-S-O-http://google.com
对我来说工作正常,但有一点需要注意:头被视为调试信息,因此它们被发送到标准错误,而不是标准输出。如果将标准输出重定向到文件或其他进程,则只会获得文档内容

您可以尝试将标准错误重定向到标准输出,作为可能的解决方案。例如,在
bash
中:

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


-q
选项会抑制进度条和
wget
输出中其他一些烦人的聊天部分。

请尝试以下操作,不要使用额外的标题

wget -qO- www.google.com
注意尾随的
-
。这是
-O
向外搜索到文件的常规命令参数的一部分,但由于我们不使用
指向文件,因此它会向外搜索到shell。您可以使用
-qO-
-qO-

这将不起作用:

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

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

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

如果不知道你想做什么,就很难给出最好的答案。您可能需要使用curl。
curl-i yoururlhere
将把标题和文件打印到控制台。

我的
alpine
linux容器不支持
-S
选项。根据GNU手册页“如果-被用作文件,文档将被打印到标准输出,禁用链接转换”,我省略了它,一切都很好。它更清楚地用前面的空格书写。这个答案没有任何意义。OP要求显示标题,而不是隐藏标题我的
alpine
linux容器不支持
-S
选项。我把它省略了,一切都完了good@ChristianBongiorno你可以用apk add wget安装一个合适的wget,否则只能使用busybox版本。我刚刚尝试了这个方法,效果很好,但是
--保存头文件
实际上是
--保存头文件
,而
wget-qS
只用于头文件(等式to
curl-IL
)您可能需要添加
--spider
arg。这个有用的原因是不下载任何页面内容。好吧,这个问题是从2012年开始的,并且已经提供了5个答案(其中一些答案的投票率很高),根据假设提供第6个答案(一行)并不是完全必要的,对吗?
wget --server-response http://www.example.com/