PR

ライブドアブログからWordPressサイトへ記事を移行する方法

楽団運営
記事内に広告が含まれています。

どうもタルンです。

今回は、楽団のWebサイトをWordPressでリニューアルした際に、ライブドアブログの記事を新サイトへ移行した方法をご紹介します。

作業の流れは、記事データの書き出し、画像の一括ダウンロード、画像URLの書き換え、サーバーへの画像アップロード、WordPressへの記事インポートの順です。約1,000記事を移行しました。作業が順調に進めば、所要時間は2時間ほどです。

この手順では画像の参照先を指定するため、作業を始める前に次の2点を決めておいてください。

  • WordPressサイトのドメイン名が決まっていること
  • 画像を保存するフォルダが決まっていること



ライブドアブログから記事文章を出力する

バックアップ機能を使ってMT(Movable Type)形式のデータを出力します。

1. ライブドアブログにログインしてブログ設定を選択する。

2.ブログ設定画面の下の方にあるバックアップ(エクスポート)ボタンをクリックする

3. エクスポートするデータの設定をする
 下書きや予約記事があれば公開していないのでチェックを外します。

4. 処理が完了したら、「こちらのリンクをクリックしてください」をクリックします。
画面が切り替わったら「ダウンロード」をクリックしてください。backup.txtというファイルがダウンロードされます。

Pythonをインストールする

以下のリンクからpythonのインストールマネージャーをダウンロードします。

Download Python
The official home of the Python Programming Language

ダウンロードしたファイル(python-manager-xx.x.msix)をダブルクリックして実行します。
実行すると以下のような画面が表示されるので、python installボタンをクリックします。

コマンドプロンプトが起動します。デフォルトでよいのでEnterを押してすすみましょう。

デスクトップ上で右クリックを押し、「ターミナルで開く」を選択します。
起動したターミナルで「python –version」と入力してEnterを押します。Pythonのバージョン情報が表示されればOKです。

画像のダウンロード

ライブドアブログの「画像/ファイル」で画像を右クリックし、「名前を付けてリンク先を保存」を選べば、画像を1枚ずつダウンロードできます。ただし、長期間運営したブログでは画像数が膨大になるため、ここではスクリプトを使って一括で取得します。

メモ帳などのテキストエディターを開き、以下のコードを貼り付けます。ライブドアブログからダウンロードしたバックアップファイルの名前を変更した場合は、6行目の「backup.txt」を実際のファイル名に書き換えてください。backup.txtと同じフォルダに”image_get.py”という名前で保存します。

import os
import re
import urllib.request

# MT形式のファイルからlivedoorの画像URLを正規表現で抽出する例
with open('backup.txt', 'r', encoding='utf-8') as f:
    content = f.read()

# MT形式のファイルからlivedoorの画像URLを正規表現で抽出する例
# ライブドアブログの画像URLパターンの例 (liveid.blog.jp/img/... など)
urls = re.findall(r'https?://[^"\s]+\.(?:jpg|jpeg|png|gif)', content)

# 重複を削除
urls = list(set(urls))

os.makedirs('downloaded_images', exist_ok=True)

for i, url in enumerate(urls):
    try:
        file_name = os.path.join('downloaded_images', os.path.basename(url))
        urllib.request.urlretrieve(url, file_name)
        print(f'Downloaded: {url}')
    except Exception as e:
        print(f'Failed: {url}, Error: {e}')

保存したフォルダ内で右クリックし、「ターミナルで開く」を選択してコマンドプロンプトを開きます。開いたコマンドプロンプトで”python image_get.py”と入力して実行します。

これで、downloaded_imagesというフォルダにすべての画像が保存されます。

MTファイル内の画像URLの変更

backup.txt内ではライブドアブログ内に置かれている画像を参照しています。wordpressの新サイトにMT(Movable Type)形式のデータをこのまま読み込ませるとライブドアブログ内のデータを参照することになります。ライブドアブログを閉鎖したときにデータを参照できなくなってしまいます。

移行前 : https://livedoor.blogimg.jp/(LivedoorのID)/imgs/(記号or数字1文字)/(記号or数字1文字)/(画像のファイル名)

移行後 : https://(ドメイン名)/(保存先URL)/(画像のファイル名)

こちらも1つずつ修正することも可能ですが、大変なので自動化しています。

メモ帳などでテキストエディタを開き以下のコードを貼り付けます。
5行目の”your_livedoor_id”をライブドアのIDに変更します。
6行目のhttps://example.com/wp-content/uploads

# --- 設定項目(必要に応じて変更してください) ---
CONFIG = {
    "input_file_path": "backup.txt",       # 置換対象のテキストファイル名
    "output_file_path": "output.txt",     # 保存先ファイル名
    "livedoor_id": "your_livedoor_id",   # LivedoorのID
    "repost_addr": "https://example.com/wp-content/uploads/blog_image",# 置換後の画像ファイルを配置するURL
}

import re

def replace_livedoor_urls(input_file_path, output_file_path, livedoor_id, repost_addr):
    # 検索パターンの定義
    # https://livedoor.blogimg.jp/ID/imgs/記号or数字1文字/記号or数字1文字/ファイル名
    # ※ Livedoor IDに含まれうる特別な文字を安全に扱うため re.escape を使用
    escaped_id = re.escape(livedoor_id)
    
    # \W は英数字およびアンダースコア以外の文字(記号)、\d は数字を表します
    pattern = rf'https?://livedoor\.blogimg\.jp/{escaped_id}/imgs/[\W\d]/[\W\d]/(?P<filename>[^\s"\'<>]+)'
    
    # 置換後の文字列パターン
    replacement = rf'{repost_addr}/\g<filename>'
    
    # ファイルの読み込みと置換処理
    with open(input_file_path, 'r', encoding='utf-8') as f:
        content = f.read()
    
    # 置換の実行
    updated_content = re.sub(pattern, replacement, content)
    
    # 置換結果を保存
    with open(output_file_path, 'w', encoding='utf-8') as f:
        f.write(updated_content)
        
    print(f"置換処理が完了しました: {output_file_path}")

# 実行
if __name__ == "__main__":
    replace_livedoor_urls(**CONFIG)

backup.txtと同じフォルダに”link_change.py”という名前で保存します。
保存したフォルダ内で右クリックし、「ターミナルで開く」を選択してコマンドプロンプトを開きます。開いたコマンドプロンプトで「python link_change.py」と入力し、Enterキーを押して実行します。output.txtという名前でURLを修正したものが出力されます。

サーバーへの画像のアップロード

WordPressのメディアへファイルをアップロードすることも可能です。ですが、画像の数が多いのでFTPを使ってフォルダを移動させました。

他の画像の近くの/wp-content/uploads/blog_imageに保存しました。

WordPressへの記事のアップロード

修正済みのMT形式ファイルをWordPressに読み込ませます。まず、Wordpressにインポートに必要なMovable Type and TypePadプラグインを追加し、記事データをインポートします。

Movable Type and TypePadプラグインを追加する

  • WordPress左のメニューからプラグインを選択する。
  • 上にある「プラグインを追加ボタン」を選択
  • 中段のプラグインの検索で「Movable Type and TypePad」を入力する
  • 検索結果に表示されたMovable Type and TypePadの「今すぐインストール」ボタンを押してインストールを開始する
  • インストール完了後に表示される「有効化」ボタンをクリックして、プラグインを有効化する。

ブログデータをインポートする

  • 左側のメニューからツール>インポートを選択する
  • Movable TypeとTypePadを探し、「インポーターの実行」をクリックする
  • 「ファイルをアップロードしてインポート」ボタンが有効になるので、クリックする
  • Livedoorブログでの投稿者をWordpressのユーザーに割り当てます
  • 実行をクリックするとWordpressでの記事になるように変換されます。

投稿カテゴリを整理する

長期間運営していて複数人がかかわってブログを書いていたため、カテゴリがバラバラになっていました。この機会に投稿カテゴリを整理しなおしました。

リダイレクトの設定

同じ内容のページが複数存在すると、検索エンジンが評価対象とするURLを判断しにくくなり、検索結果で意図したページが表示されない可能性があります。ライブドアブログでは、.htaccessを編集して301リダイレクトを設定することができません。また、metaタグやJavaScriptによるリダイレクトはPC版では動作しましたが、モバイル版では転送用のコードが自動的に無効化され、正常に機能しませんでした。

そこで代替策として、旧ブログのすべての記事を下書きに戻し、移転を案内する記事だけを公開しました。

当団の公式ウェブサイトをリニューアル(移転)しました。
これに伴い、当ブログの内容は新しい公式ウェブサイトへ移行・掲載しております。

なお、****年**月末をメドに、本ブログは閉鎖を予定しています。

今後の最新情報や演奏会のご案内は、お手数ですが下記の新しい公式Webサイトでご確認ください。
👉 新しいサイトのURL

旧ブログへのアクセスが減少していることを確認したうえで、移転のお知らせを掲載していた期間の終了後にブログを閉鎖しました。

まとめ

ライブドアブログからWordPressへ記事を移行する際は、記事データだけでなく、画像ファイルの保存と本文内の画像URLの書き換えも必要です。作業前にバックアップを取り、少数の記事で表示を確認してから全体を移行すると、トラブルを減らせます。



タイトルとURLをコピーしました