Wget输出文档和标题到STDOUT

时间:2012-08-25 09:52:24

标签: linux http wget

我正在尝试使用wget -S -O - http://google.com

的wget将文档正文及其标题输出到stdout

但它只显示html docment。

由于

UPD:

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

wget --version显示GNU Wget 1.11.4 Red Hat已修改

6 个答案:

答案 0 :(得分:136)

尝试以下操作,无额外标题

wget -qO- www.google.com

请注意尾随-。这是-O传递给文件的正常命令参数的一部分,但由于我们不使用>指向文件,因此它会转到shell。您可以使用-qO--qO -

答案 1 :(得分:41)

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输出的进度条和其他一些烦人的部分。

答案 2 :(得分:17)

它在这里工作:

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

答案 3 :(得分:2)

这不起作用:

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

答案 4 :(得分:0)

这对我来说可以打印带有标题的响应:

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

答案 5 :(得分:-1)

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