
サイトをミラーリングしようとしていますが、サーバーはgzipで圧縮されたページにのみ応答するため、wgetは繰り返されません。検索してみると、wgetにgzipサポートを追加するパッチへの参照がありますが、古いようです。これを行う方法はありますか?そうでない場合は、nginxを介したリバースプロキシを検討しています。
答え1
4つの方法があります:
wget
その後gunzip
、HTMLで再処理します。完了するまで繰り返します。wget -m http://example.org/page.html find . -name \*gz -exec gzip -d {} \; find . -name \*html -exec wget -M -F {} \;</code></pre>
速度は遅いですが動作します。
Privoxyをインストールし、要求されたページを解凍するように設定します。
+圧縮防止
ウェブサイトのデータ圧縮を防ぎます。一部のサイトではこれを行います。これは、+filterと+gif-deanimateが圧縮データで機能しないため、zlibサポートなしでビルドするとPrivoxyに問題があります。ただし、これらのサイトへの接続が遅くなります。
Privoxyまたは他のプロキシは圧縮されたページをインポートし、圧縮されていないコピーをクライアントGoogleに渡すこともできます。
wget
リクエストコンテンツの「Accept-Encoding:gzip」ヘッダーを送信しません。gzip
なぜこれが起こるのかを確認してください。たぶんそれを追加するエージェントはありますか? Privoxyを使用してこのヘッダーを削除することもできます。
答え2
wget -m -q --compression=auto http://example.com
~からGNUwget
マニュアル:
--compression=type
使用する圧縮の種類を選択します。有効な値は
auto
、gzip
およびですnone
。またはが指定されている場合、
auto
サーバーはファイルを圧縮するために圧縮形式を使用するように要求されます。サーバーがファイルを圧縮し、適切に設定されたヘッダーフィールドで応答すると、ファイルは自動的に解凍されます。gzip
wget
gzip
Content-Encoding
none
指定した場合、wget
サーバーはファイルの圧縮を要求せず、すべてのサーバー応答は解凍されません。これがデフォルト設定です。圧縮サポートは現在実験的です。開いている場合「バグがあれば報告してください。[Eメール保護]」。
答え3
答えが遅かったのですが、ウェブ参照用です。
wget -O - $URL | zcat | wget -B $URL -i - -F -c -T 45 -k -r --page-requisites
文書キャッシュは「よく知られている」。タイムアウト/再試行オプション(-cや-Tなど)は、ワイヤレスネットワークで断続的な「リンク損失」に役立ちます。もちろん、すべてのオプションはオプションです。