自分が管理しているWebサイトでサーバー移転を検討しております。その中でCMS(Contents Management System(コンテンツ・マネジメント・システム))を利用した動的生成のWebサイト部分。普通、静的HTMLのサイトであれば新サーバーにファイルをアップロードしなおすだけで済みますがCMSのサイトだとそうはいきません。
何分古いシステムで動いているものは新サーバーで動かすのは苦労、というよりかは新システムに移行などになるとかなりの労力がかかります。
そのシステムが現役で稼働しているのであれば移行が必要ですが参照、見るだけで十分であればその労力はかけたくない、という事で調べてみると
★wget によるCMSベースのサイトの静的HTML化 – iroha Tech Note
★wgetコマンドでCMSサイトを静的html化 – matoken's meme
ようはWebサイトのデータ取得プログラムを使い、HTML化する事で動的サイトを静的サイト化するって事ですわな。
Windowsの場合
★Wget for Windows
インストーラーをダウンロードしインストール。Windows10、11にしてもシステムの「システムの詳細設定」→「環境変数」→「Path」をダブルクリックし「新規」で
C:\Program Files (x86)\GnuWin32\bin
を追加。
あとは
wget --mirror --page-requisites --html-extension --convert-links 収集したいWebサイトURL
と。
--mirror
└再帰的な取得
--page-requisites
└ページ内の画像やCSSを取得
--html-extension
└取得したコンテンツの拡張子を.htmlに変更
--convert-links
└絶対パスから相対パスに変換、これは地味に嬉しい。
最後は取得したいサイトのURL、です。
そのサイトの特定のディレクトリ以下を取得したい際はアドレスにそのアドレスまで表記して
http://www.yuumediatown.com/test/
test以下のフォルダのみ取得したい場合は
★【UNIX】wgetコマンドでウェブサイト(ディレクトリごと)一気にバックアップする方法 - Wataame Frog
-np
を付けると親ディレクトリは無視、な指示になるようですな。
以前、普通にWindowsアプリでこの手のプログラム使ったのですがうまくいきませんでした。考えてみればWebスクレイピング対策的な機能が働いており、それをOFFにして特定のネットワークからしかアクセスできない設定にしてその問題に対処。
ちなみにこちらのプログラム、基本は自分管理下のWebサイトにやりましょうね・・・・・一応サーバーの負荷を見ながらやってて、そんなに負荷与えるものではなかったけれど動的サイトにそこそこアクセスするので接続やプロセスは増える。それを見てると人様のサイトにやろうとは思いませんでした。
--------------2023年8月6日 18時26分追記--------------
★Intel Mac miniにHomebrewでwgetをインストールしてみた(2023年07月07日 (金曜日))
以前にMacにwgetインストールしたので使ってみたのですがOSで挙動違うのね・・・・とある動的システムをwgetしたらファイル名が
.cgi?key=140.html
となりましてWindowsだとそのファイル名が
.cgikey=140.html
表示。
そしてそのファイルにリンク張ってるHTMLを見ると
.cgi%3Fkey=140.html
な表示でリンクがまともに動かない。これはMac、Windows共通。
同じのをWindowsでwgetすると
ファイル名が
.cgi@key=140.html
で普通にリンク張ってるHTMLを見ると
.cgi@key=140.html
でMac、Windowsともに普通にリンクとして成立。
なんでや?
とりあえずwgetはWindowsでやるか・・・・・
--------------2023年8月6日 18時26分追記ここまで--------------