-kが指定されていない場合、ダウンロード後にwgetがHTMLリンクを相対リンクに変換するようにします


32

-kオプション(または--convert-link、そのようなmanページが言うように、ダウンロードが完了すると、後に相対的にWebページ内のリンクに変換されます):

ダウンロードが完了したら、ドキュメント内のリンクを変換して、ローカル表示に適したものにします。これは、表示されるハイパーリンクだけでなく、埋め込み画像、スタイルシートへのリンク、非HTMLコンテンツへのハイパーリンクなど、外部コンテンツにリンクするドキュメントのすべての部分に影響します。

したがって、指定しなかった場合、ダウンロード後に再度-k実行wgetして修正できますか?その場合、適切なコマンドは何ですか?私の推測ではwget -c [previous options used] [url]、ファイルがダウンロードされたのと同じ作業ディレクトリで実行されます。


1
ダウンロード後にファイルを確実に後処理できますが、これを行うかどうかwgetはわかりません。試してみるというアイデアは-c良いものです。実験する時間!
いんちきのキホーテ

万が一、リンクを変換するのに便利なユーティリティがありますか?...ところで、Windows上で実行されている
ナサニエル

perl...ない事前に書いたスクリプトを、私は、私が使用したいものだDIYソリューションたい場合
いんちきキホーテの

わかった、ありがとう。Perlをインストールしないでください。Perlを取得するには時間がかかりすぎます。幸いなことに、wgetに仕事をさせる方法を見つけました。回答を投稿しました。
ナサニエル

ところで、ActivePerlはWindows perlポートとして存在します。それはかなり小さなインストーラーであり、ほとんどのCPANモジュールが動作するはずです。 activestate.com/activeperl
クワックキホーテ2009

回答:


23

はい、できますwget。useと言いますwget -nc -k [previous options] [previous url]-ncノークラッバーです。manページから:

が指定されている場合−nc、この動作は抑制され、Wgetはファイルの新しいコピーのダウンロードを拒否します。

そして、-kオプションはリンク変換を行います。そのため、wgetはリモートサーバーを掘り始め、既に持っているすべてのファイルを確認し、それらのファイルの再ダウンロードを拒否し、完了したらHTMLリンクを相対に編集します。いいね


3
いいえ、これは私には機能しません。彼は最初のファイル(例えば、index.html)をダウンロードします。それは既にダウンロード済みであることがわかります。wgetを再帰的に動作させるには、タイムスタンプ(-K)オプションを使用する必要があります。そのため、wgetは、ファイルが新しいかどうかに応じて、すべてのヘッダーを一致するように要求する必要があります。

12
darwin11.1.0上に構築されたGNU Wget 1.13.3。同時に両方のオプションを使用しようとするとできますBoth --no-clobber and --convert-links were specified,only --convert-links will be used.
ルドビクKuty

2
あなたの質問は-kなしで求めなかったのですか
barlop

8
Cf. @LudovicKutyのコメント-wget 1.13の時点で--no-clobberはで動作しません--convert-links。詳細については、http://savannah.gnu.org/bugs/?31781を参照してください。
デビッドモールズ

1
誰かが気になる場合に備えて、wget 1.12のdocker
berezovskyi
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.