ファイルの代わりに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

検索でこのトピックを探している人のために(1年半後)、カールがデフォルトでstdoutにパスし、wgetがこの目的に適していないようであることがわかりました。だから私の解決策は次のとおりです。

wgetの代わりにカールを使用してください。

答え2

wget -r -O - $SITE | scanningProgram

ファイル名、ディレクトリ名、パスなどを気にしない限り動作します。

これは例です

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

このサイトのすべての出力はX文字に変換されます。

答え3

-Oで-rまたは-pを使用すると、期待どおりに機能しない可能性があります。 Wgetは最初のファイルのみをファイルとしてダウンロードし、残りのファイルを一般名でダウンロードしません。ダウンロードしたすべてのコンテンツはファイルに配置されます。 wget \ - -recursiveを試してください。 \--page-requirements\--html-extension\--convert-links\--restrict-file-names=windows\--domains website.org\--no-parent\$SITE

関連情報