「wget」でページを保存しないようにする


68

wgetプログラムを使用していますが、ダウンロードしているhtmlファイルを保存しないようにします。私はそれが受け取られた後に廃棄されることを望みます。それ、どうやったら出来るの?


私はLinuxを初めて使用します- /dev/null動作しますか?
ラムラチャム

2
それで、それをダウンロードするポイントは何ですか?
匿名

1
@Anonymousリモートサーバーにストレスをかけると仮定します。コンテンツに関心がない場合は、おそらくapachebench(ab)を使用します。
トム・オコナー

回答:


83

wgetの出力を/ dev / null(またはWindowsではNUL)にリダイレクトできます。

wget http://www.example.com -O /dev/null

ファイルはディスクに書き込まれませんが、ダウンロードされます。


これはページを保存しませんが、私にメールを送信します。また、電子メールを無効にすることは可能ですか?
トランテ

32

ファイルを保存したくない、とあなたはでページをダウンロードするの溶液を受け入れた場合/dev/null私はあなたが取得し、ページの内容を解析しないようにwgetを使用していると仮定します

何らかのリモートアクションをトリガーすることが本当に必要な場合は、ページが存在することを確認するなどして、html本文ページをまったくダウンロードしない方が良いと思います。

遊ぶwgetなどだけあなたが本当に必要なもの、すなわちHTTPヘッダー、リクエストのステータスを取得するためのオプション

  • ページを確認する必要があると仮定すると(つまり、返されるステータスは200です)、次のことができます。

    wget --no-cache --spider http://your.server.tld/your/page.html
    
  • サーバーから返されたヘッダーを解析するには、次の手順を実行します。

    wget --no-cache -S http://your.server.tld/your/page.html
    

プレイするその他のオプションについては、wgetのマニュアルページを参照してください。wgetの代替としても
参照してくださいlynx


よくわかりません。--no-cachemanページでは、それが「リモートサーバーに適切な指示( 『プラグマ:キャッシュなし』)を送るリモートサービスからファイルを取得する」ためにはwgetの原因と言う
ガイア

それはあなたのクライアントは、ファイルのキャッシュされたバージョンを必要としないサーバーに言う..我々は我々が要求しているリソースの非常に最後のリリースを取得したい
drAlberT

17

$ wget http://www.somewebsite.com -O foo.html --delete-after


1
どうもありがとう。この--delete-afterオプションは、再帰的にダウンロードする必要があるが、実際のコンテンツを破棄する場合に選択します。
egelev

1コマンドは直感的である私にとって、 -一目で、私はより速くより発生する何が起こっているか理解することができます-O /dev/null
fusion27

15

コンソールで結果を印刷する場合も、次のことができます。

wget -qO- http://www.example.com

1
このオプションが一番気に入っています。何が得られるか見てみましょうが、保存はしません。スイッチは特にqクワイエットモード(進行状況やその他の情報を出力しません)、およびO-(取得したドキュメントをコンソールに書き込む)です。
タコ

9

別の方法はcurl、デフォルトでリモートコンテンツをstdoutファイルに保存する代わりに出力するなどのツールを使用することです。


4

「-spider」オプションを確認してください。私はそれを使って私のWebサイトが稼働していることを確認し、稼働していない場合はメールを送信します。これは私のcrontabからの典型的なエントリです:

46 */2 * * * if ! wget -q --spider http://www.rochesterflyingclub.com/ >/dev/null 2>&1; then echo "Rochester Flying Club site is down" ; fi

3

wgetを使用してWebサイトをクロールする必要があり、ディスクチャーンを最小限に抑えたい場合...

* NIXボックスおよび使用のwget場合、ファイルへの書き込みをスキップすることをお勧めします。Ubuntu 10.04ボックスでwget -O /dev/null、最初のダウンロード後にwgetがダウンロードを中止することに気付きました。
またwget -O real-file、wgetがページ上の実際のリンクを忘れる原因にもなりました。index.html各ページに存在することを主張します。そのようなページは常に存在するとは限らず、wgetは以前に見たリンクを記憶しません。

ディスクに書き込むことなくクロールするために、私が思いついた最高のものは次のとおりです

 mkdir /dev/shm/1   
 cd /dev/shm/1
 wget --recursive --relative --no-parent ...

-O fileオプションがないことに注意してください。wgetは、$ PWDディレクトリに書き込みます。この場合、RAMのみのtmpfsファイルシステムです。ここに書き込むと、ディスクチャーンが回避され(スワップスペースに依存)、すべてのリンクが追跡されます。これにより、Webサイト全体が正常にクロールされます。

その後、もちろん、

 rm --recursive --force /dev/shm/1/*

2

ダウンロード後にファイルを削除する--delete-afterオプションを使用します。

編集:おっと、すでに答えられていることに気づいた。


0

ヘルプdoc(wget -h)によると、-spiderオプションを使用してダウンロードをスキップできます(バージョン1.14)。

Download:
  -S,  --server-response         print server response.
       --spider                  don't download anything.


これは、--spiderに言及する他の回答にどのように追加されますか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.