将 wget --recursive 路由到 stdout (如 -O - )而不是文件

将 wget --recursive 路由到 stdout (如 -O - )而不是文件

我想递归地“扫描”网站内容,并将其通过管道传输到另一个程序。

当我跑步时:

wget -r -O - $SITE

我明白了

WARNING: combining -O with -r or -p will mean that all downloaded content
will be placed in the single file you specified.

然后,“下载”过程开始,但在第一页完成后挂起。我所说的“挂起”的意思是,似乎没有发生任何事情,在我点击 之前我也没有返回命令提示符Ctrl+C

我更愿意避免选择输出wget到临时文件夹并逐个文件扫描,以及编写自己的剪贴器,这似乎是 2012 年底人们能想到的最多余的行为。

答案1

对于任何通过搜索找到这个主题的人来说,就像我所做的那样(一年半后),我发现默认情况下,curl 会路由到 stdout,而 wget 似乎并不适合这种用途。所以我的解决方案是:

使用curl 代替wget。

答案2

wget -r -O - $SITE | scanningProgram

只要你不关心文件名、目录名、路径等就可以工作

这是一个例子

wget -r -O - http://ginatrapani.googlepages.com | sed 's/./X/g'

该网站的所有输出都会转换为 X 字符

答案3

将 -r 或 -p 与 -O 一起使用可能无法按您的预期工作:Wget 不会只下载第一个文件到 file,然后将其余文件下载到其正常名称:所有下载的内容将放置在 file.try wget \ - -recursive \ --page-requirements \ --html-extension \ --convert-links \ --restrict-file-names=windows \ --domains website.org \ --no-parent \ $SITE

相关内容