wget
ダウンロードと機能を分離する方法はありますか--convert-links
?簡単に言えば、およびwget
/または慣れていない人のためにwgetを使用してウェブサイトをダウンロードできます。ダウンロードしたウェブサイトがオフラインで動作するようにダウンロードしたhtmlファイルを変更します。 /などを変換してこれを行います。プロパティは、リモートWebサイトではなくローカルファイルを参照します。--convert-links
--convert-links
href
src
これは正式な説明:
-k --リンク変換
ダウンロードが完了したら、ドキュメントのリンクをローカルビューに合わせて変換します。これは、表示されるハイパーリンクだけでなく、埋め込み画像、スタイルシートリンク、HTML以外のコンテンツへのハイパーリンクなど、外部コンテンツにリンクされている文書のすべての部分にも影響します。
各リンクは、次の2つの方法のいずれかに変更されます。
•Wgetからダウンロードしたファイルへのリンクは、相対リンクで指すファイルを参照するように変更されます。
例:ダウンロードしたファイル/foo/doc.htmlが/bar/img.gif(やはりダウンロード済み)にリンクされている場合、doc.htmlのリンクは../bar/img.gifを指すように変更されます。この変換は、すべてのディレクトリの組み合わせに対して安定しています。
• Wget としてダウンロードされないファイルへのリンクは、ホスト名とそのファイルが指す場所の絶対パスを含むように変更されます。
例:ダウンロードしたファイル/foo/doc.htmlが/bar/img.gif(または../bar/img.gif)にリンクされている場合、doc.htmlのリンクはhttp://hostname /を指すように変更しますになります。バー/img.gif。
したがって、ローカルナビゲーションは安定して動作します。リンクされたファイルがダウンロードされている場合、リンクはローカル名を参照し、ダウンロードされていない場合、リンクは壊れたリンクを表示するのではなく完全なインターネットアドレスを参照します。以前のリンクは相対リンクに変換されるため、ダウンロードした階層を別のディレクトリに移動できます。
Wgetは、ダウンロードが完了した後にのみどのリンクがダウンロードされたかを知ることができます。したがって、-kによって実行される操作は、すべてのダウンロードが終了したときに実行されます。
(再帰)ダウンロードが手動で中断され、再起動された場合、または最初に指定されていない場合は、ファイル内で一般的なリンクを取得するには-k
どうすればよいですか?html
--backup-converted
wgetはリンクをダウンロードするとすぐに変換するため、プロセスをより強力にしないようです。すべて(欠落ファイルなし)または独自のファイル(xpathなど)
ベストアンサー1
ファイルはASCIIテキスト.html
なので、を含むファイルを使用でき、変更されていないファイルは 。.html
sed
http://bad.url/good.part
https://bad.url/good.part
good.url
*.html
*.html.bak
find . -type f -name '*.html' -print0 | \
xargs -0 -r sed -i.bak -e 's%://bad\.url/%://good.url/%'
自然に読むman find xargs sed