web-dev-qa-db-ja.com

Linuxサーバーに完全なWebページを保存するための最良の方法は何ですか?

リンクされた画像などを含む完全なページをLinuxサーバーにアーカイブする必要があります。最良の解決策を探しています。すべてのアセットを保存してから、それらすべてを再リンクして同じディレクトリで機能させる方法はありますか?

Curlの使用を考えましたが、これをすべて行う方法がわかりません。また、PHP-DOMが必要になる可能性がありますか?

サーバー上でFirefoxを使用し、アドレスがロードされた後などに一時ファイルをコピーする方法はありますか?

すべての入力を歓迎します。

編集:

ファイルをレンダリングする必要があるため、wgetは「機能しない」ようです。サーバーにFirefoxをインストールしていますが、FirefoxにURLをロードしてから、一時ファイルを取得して、後で一時ファイルをクリアする方法はありますか?

12
Tomas

wgetはそれを行うことができます、例えば:

wget -r http://example.com/

これは、example.comサイト全体を反映します。

いくつかの興味深いオプションは次のとおりです。

-Dexample.com:他のドメインのリンクをたどらない
--html-extension:text/htmlcontent-typeのページの名前を.htmlに変更します

マニュアル: http://www.gnu.org/software/wget/manual/

14
Arnaud Le Blanc

次のコマンドを使用します。

wget -E  -k -p http://yoursite.com

使用する -E拡張子を調整します。使用する -kリンクを変換して、ストレージからページをロードします。使用する -pページ内のすべてのオブジェクトをダウンロードします。

このコマンドは、指定されたページにハイパーリンクされている他のページをダウンロードしないことに注意してください。これは、このコマンドが指定されたページを正しくロードするために必要なオブジェクトのみをダウンロードすることを意味します。

9
SuB

Webページのすべてのコンテンツが静的である場合、 wget :のようなものでこの問題を回避できます。

$ wget -r -l 10 -p http://my.web.page.com/

またはそのいくつかのバリエーション。

動的ページもあるため、通常、wgetまたは単純なHTTPクライアントを使用してそのようなWebページをアーカイブすることはできません。適切なアーカイブには、バックエンドデータベースとサーバーサイドスクリプトの内容を組み込む必要があります。つまり、これを適切に行う唯一の方法は、バッキングサーバー側ファイルをコピーすることです。これには、少なくともHTTPサーバーのドキュメントルートとデータベースファイルが含まれます。

編集:

回避策として、適切な権限を持つユーザーがすべてのサーバー側ファイルと、バッキングデータベースのテキストモードダンプ(SQLダンプなど)をダウンロードできるように、Webページを変更できます。このアーカイブシステムにセキュリティホールを開かないように、extremeに注意する必要があります。

仮想ホスティングプロバイダーを使用している場合、それらのほとんどは、サイト全体のバックアップを可能にするある種のWebインターフェイスを提供します。実際のサーバーを使用する場合は、ホストされているサイト用のWebベースのソリューションを含め、インストールできるバックアップソリューションが多数あります。

6
thkala
wget -r http://yoursite.com

十分であり、画像/メディアを取得する必要があります。あなたがそれを養うことができるたくさんのオプションがあります。

注:wgetやその他のプログラムは、CSSで指定された画像のダウンロードをサポートしていると思います。そのため、手動でダウンロードする必要がある場合があります。

ここにいくつかの有用な議論があるかもしれません: http://www.linuxjournal.com/content/downloading-entire-web-site-wget

2
meder omuraliev