プログラミング

ホームページをまるごとダウンロード保存し無料サーバーに爆速アップロードする方法【MacOS向け】

ホームページをまるごとダウンロードする方法

こんにちは、フリーランスのエンジニアとして活動しているしょーごです。

最近は2000年代に無料ブログサービスとして隆盛を誇っていたサービスが相次いでサービス終了を打ち出しています。

今回の記事を見ることで学べること
  • MacOSにおいて、閉鎖されるor移転したいブログサイトをまるまるダウンロードし、無料サーバーにアップロードする方法
  • FTP情報がないサイト修正で、フロントのデータを引っ張ってこれる

これがわかるようになります。

案件経緯

先輩「しょーご!高校時代のホムペがサービス終了するみたいなんだ、残せたりしないかな?」

わい「押忍!やってみます!」

わい「あれ、データエクスポートサポートないし、xhtml,Shift-JIS,PHP…」

注意:ブログサイトをそのまま移転するだけ

今回はサイトのリニューアルではなく、あくまで「既存サイトから別の無料サーバーに退避する方法」に特化していますので、

新しくサイトを作り直したい場合には別途対策が必要です。

あくまでHTMLファイル群をダウンロードしてサーバーに上げるだけなので、更新も行えません。現在のサイトをそのままアーカイブするだけになります。

またフロントファイル群を持ってこれるので、エクスポートができなかったりFTP情報がない場合に最終手段に使えます。

ホームページ移転の手順

今回は2種類を紹介します。前半は静的サイト、後半はCMSなど動的サイトも対応しております。

前半

  1. home brewを準備する
  2. httrackをインストールする
  3. httrackコマンドでファイル群をインストール
  4. netlifyにアップロードする

後半

  1. home brewを準備する
  2. wgetをインストールする
  3. wgetコマンドでインストール
  4. アップロードする

①home brewを準備する

home brewはMacOS用の「ソフトウェアのパッケージ管理ツール」で、簡単にソフトウェアやアプリをインストールしたり、アップデートできるものです。

公式サイトにスクリプトがあるので、それをターミナルで実行します。

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

途中で権限の問題でパスワード入力が求められます。

②httrackをインストール

home brewがあれば後は楽です。

brew install httrack

でhttrackをインストールします。

ちなみに、brew installは以前インストールした古いパッケージ等自動的に削除してアップデートしてくれるので、僕は結構時間かかりました笑

③httrackコマンドでファイル群をインストール

その後、ターミナルで

httrack

と入力します。するといくつか質問がくるので、それに回答していきます。

Enter project nameなんでもOK
Base path未入力でOK
Enter URLsサイトのURLを入力
Action1
Proxy未入力でOK
Ready to launch the mirror? (Y/n)y

これにてファイル類のダウンロードが終了しました。

ダウンロードしたファイルの場所

/Users/あなたの名前/websitesのディレクトリ直下に、Enter project nameで入力したフォルダにまとまって出力されています。

④無料サーバーにアップロード

私の一押しはNetlifyです。Github Pagesよりもはるかに簡単です。

会員登録まだの方は登録をしておいてください。

その後、ダウンロードしたファイル群をフォルダごとドラッグアンドドロップします。

すると、このように即座に公開されます。

ファイル数が大量にあるとアップロードできません。小分けにするとかですかね。

ただ、既存の URLがだいぶ適当なので、変更したい方は

Domain Settings→options

からhttps://サイト名.netlify.appに変更することができます。

wgetをインストールする

さてここからは二番目の方法です。こちらの方がおすすめです。

wgetコマンドとは?

HTTPアクセスをしてコンテンツをファイルに保存するコマンド。 curlでも同じようなことができるが、 curlと違ってリンクをたどりながら再帰的にたくさんのファイルをダウンロードすることができる。

文字通り、自由にフロントのファイルをダウンロードできるのですが、気に入ったサイトのファイルをダウンロードもできちゃいます。

著作権的にいいのか…

まずはhome brewをインストールしたら、wgetをMacに入れていきます。

brew install wget

wgetコマンドでインストール

動的サイトからダウンロードする場合は、以下のようなコマンドになります。

wget --mirror --page-requisites --html-extension --convert-links http://example.com/
  • ・mirror
  • サイトのミラーに適したオプションです.再帰的な取得などを行います.次のオプションと同等です.-r -N -l inf --no-remove-listing
  • ・–page-requisites
  • ページに必要な画像やスタイルシートなどのコンテンツも取得します.
  • ・–html-extension
  • 取得したhtmlコンテンツの拡張子を.htmlに変換します.
  • ・–convert-links
  • 取得したコンテンツをダンロードしたコンテンツを参照するように書き換えます.例えばfoor/doc.htmlから/bar/img.gifを参照している場合 doc.html のリンクを../bar/img.gifと書き換えます.
  • http://example.com/
  • 取得したいsiteのurlです.

ちなみに30分とか場合によってはかかります。

11,725ファイル…

ダウンロードされたHTMLファイル群を見てみると、リンク先も完全に再現されていることがわかります。