19

「wget--mirror[sitename]」でwgetミラーを開始しましたが、正常に機能していましたが、誤ってプロセスを中断しました。

ここで、次の注意事項を付けてミラーを再開したいと思います。

  • wgetがすでにファイルをダウンロードしている場合は、再度ダウンロードしたくありません。wgetにタイムスタンプをチェックさせたくありません。私が持っているバージョンは「十分に最近」であることがわかっています。

  • すでにダウンロードされているファイルをwgetに読み取らせ、それらのファイル内のリンクをたどってもらいたいです

上記の最初のポイントに「-nc」を使用できますが、ダウンロード済みのファイルをwgetに強制的に読み取らせることができないようです。

私が試したこと:

  • 明らかな「wget-c-m」は、タイムスタンプを比較する必要があるため機能しません。これには、リモートサーバーに対して少なくともHEAD要求を行う必要があります。

  • 「wget-nc-m」は機能しません。-mは-Nを意味し、-ncは-Nと互換性がないためです。

  • 「wget-F-nc-r -l inf」は私が思いついた最高のものですが、それでも失敗します。「-F」がwgetに、ダウンロード済みのローカルファイルをHTMLとして強制的に読み取らせ、リンクをたどることを期待していましたが、これは発生していないようです。

  • 他のいくつかのオプション(「-c」や「-B [サイト名]」など)を試しましたが、何も機能しません。

wgetでこのミラーを再開するにはどうすればよいですか?

4

2 に答える 2

11

どうやらこれはうまくいきます:

解決済み: Wget エラー「古いファイルのタイムスタンプとクロバーを同時に実行できません。」2012 年 2 月 4 日に投稿 Wget を介して実行していたサイト ミラー操作を再開しようとしているときに、「同時に古いファイルをタイムスタンプで上書きすることはできません」というエラーに遭遇しました。-N フラグと -nc フラグを同時に設定して Wget を実行することはできないため、noclobber を使用して再帰的なダウンロードを再開したい場合は、-N を無効にする必要があります。-m 属性 (ミラーリング用) は本質的に -N 属性を設定するため、noclobber も使用するには -m から -r に切り替える必要があります。

から: http://www.marathon-studios.com/blog/solved-wget-error-cant-timestamp-and-not-clobber-old-files-at-the-same-time/

于 2014-01-24T15:15:49.210 に答える
6

-mwget マニュアルによると、この長い一連の設定と同等です: -r -N -l inf --no-remove-listing. の代わりにこれらの設定を使用し、 (タイムスタンプ)を使用-mしないでください。-N

wgetで既存のhtmlファイルからURLをダウンロードする方法があるかどうかはわかりません。おそらく解決策があります.htmlファイルを入力として取り、それらのすべてのリンクをスクレイピングできることを私は知っています。おそらく、bash コマンドを使用して、すべての html ファイルを 1 つの大きなファイルに連結することができます。

再ダウンロードするだけでよかったので、すべてのhtmlファイルを削除するだけでこの問題を解決しました。しかし、これはすべてのユースケースでうまくいくとは限りません。

于 2016-09-17T10:07:22.330 に答える