こんにちは、フリーランスのエンジニアとして活動しているしょーごです。
最近は2000年代に無料ブログサービスとして隆盛を誇っていたサービスが相次いでサービス終了を打ち出しています。


- MacOSにおいて、閉鎖されるor移転したいブログサイトをまるまるダウンロードし、無料サーバーにアップロードする方法
- FTP情報がないサイト修正で、フロントのデータを引っ張ってこれる
これがわかるようになります。
案件経緯
先輩「しょーご!高校時代のホムペがサービス終了するみたいなんだ、残せたりしないかな?」
わい「押忍!やってみます!」

わい「あれ、データエクスポートサポートないし、xhtml,Shift-JIS,PHP…」
注意:ブログサイトをそのまま移転するだけ
今回はサイトのリニューアルではなく、あくまで「既存サイトから別の無料サーバーに退避する方法」に特化していますので、
新しくサイトを作り直したい場合には別途対策が必要です。
ホームページ移転の手順
今回は2種類を紹介します。前半は静的サイト、後半はCMSなど動的サイトも対応しております。
前半
- home brewを準備する
- httrackをインストールする
- httrackコマンドでファイル群をインストール
- netlifyにアップロードする
後半
- home brewを準備する
- wgetをインストールする
- wgetコマンドでインストール
- アップロードする
①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をインストールします。

③httrackコマンドでファイル群をインストール
その後、ターミナルで
httrack
と入力します。するといくつか質問がくるので、それに回答していきます。


Enter project name | なんでもOK |
Base path | 未入力でOK |
Enter URLs | サイトのURLを入力 |
Action | 1 |
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ファイル群を見てみると、リンク先も完全に再現されていることがわかります。
ご寄付を頂けると今後の更新の励みになります!