A symphonic metal song about watching videos late into the night and struggling to wake up in the morning.
夜遅くまで動画を見てしまって朝がつらいというシンフォニックメタル
A symphonic metal song about watching videos late into the night and struggling to wake up in the morning.
夜遅くまで動画を見てしまって朝がつらいというシンフォニックメタル
A metal song about not being able to find my car in a parking lot.
駐車場で自分の車が見つからないというメタルの曲
ブログへの写真のアップロード、Xへの投稿、PC内のフォルダ・ファイル整理が面倒
→これらを一括してやろう、できるだけ自動化しよう、と考えた
エキサイトブログではAPIを使った投稿はできない
=エキサイトブログの管理画面を開いて手動で記事を投稿しないといけない
これでは自動化できない
そこでAPIを使った投稿ができるワードプレスに移転することにした
・エキサイトブログからワードプレスへの移転をどうやればいいのかをAIに聞くと、エキサイトブログには記事のエクスポート機能がないことが分かる
・次のような方法を提案される
【エキサイトブログ】
│
▼ (FC2の自動引越しツールを使う)
【FC2ブログ】
│
▼ (記事データと画像をダウンロード)
【パソコン / Mac】
│
▼ (画像アップロード & 記事インポート)
【WordPress】
・画像は一旦エキサイトブログへのリンクとしておき、
画像へのリンク付きの記事を更新すれば、画像をダウンロードしてワードプレスが入っているサーバに保存してくれる、というツールを使えばいいということが分かる
・できそうだなと思ったところ、エキサイトブログからFC2ブログへの引っ越しには数時間〜数日かかると分かる
・数日も待ちたくないので、他の方法をAIに聞くと、次のような回答があった
他社ブログを経由する力技よりも、Pythonでスクレイピングして「Movable Type(MT)形式」のテキストファイルを生成し、それをWordPressにインポートするのが最も確実でスマートな内製ルートです。
エキサイトブログのHTML構造からデータを抽出し、WordPressがそのまま解釈できるインポートファイルを生成する設計指針をまとめました。
- 移行の全体戦略
スクレイピング(抽出): Requests と BeautifulSoup でエキサイトブログの全記事をループ処理し、タイトル・本文・投稿日時・カテゴリ(タグ)を取得。- 中間ファイルの生成(変換): 取得したデータを、WordPressが標準で対応しているMovable Type(MT)形式のプレーンテキストとして1つのファイルに結合出力する。
- WordPressへインポート(取り込み): 生成した .txt ファイルをWordPressのインポーターで読み込む。
・以前なら「Pythonでスクレイピング」「Requests と BeautifulSoup で…」「Movable Type(MT)形式で結合出力」なんて言葉が出てくるとあきらめていたが、自分が理解する必要はなくAIが理解できればOK
・AIに相談しながら決まった方針が以下の通り(なるほど分からん)
/12345678/ のような個別ページリンク)を抽出して urls.txt などのファイルに一覧化します。while 文などで次のページがある限りループを回し、取得したURLは set(重複排除)に格納して綺麗にまとめます。BODY: と EXTENDED BODY: の2つに分けて書き出します。これでWordPress側でも綺麗にmoreが再現されます!pds.exblog.jp...)を向いたままでOKです。excite_migration.txt)を読み込ませます(これで記事文章とmoreの区切りが移行完了)。wp-content/uploads/)へ自動ダウンロード&URL置換を裏で一気にやってくれます!上記の「エキサイトブログ⇒WordPress 移行完全ロードマップ」をクロードコードに読み込ませ、各フェーズをやってもらった。
AIにやってもらったことをAIにまとめてもらった。
元のエキサイトブログのHTML構造を調査(記事リンク、ページネーション、タイトル、本文、「続きを読む」の区切り)
月別アーカイブを巡回するプログラムを作成し、全記事URL(5646件)を収集
各記事を取得し、タイトル・日付・カテゴリ・本文・続きを読む部分をMovable Type形式に変換するプログラムを作成
最終的に5646件すべて変換完了
欠落していた記事があることが後でわかる
変換したデータをWordPressにインポート(5639件が下書きとして登録)
下書き5639件を一括で「公開済み」に変更
ワードプレスの編集画面で大量の記事を編集するとエラーが出たので、AIに相談すると、SQLで一括処理しましょうと言われ、言われるがままにサーバの設定を変更したり、SQLのコードをコピペしたりして何とか公開済みに変更できた
インポート時にタイトルと日付が完全一致する記事同士がスキップされる問題を発見
欠落していた記事を特定(うち1件は本当の二重投稿だったため不要、6件は再投稿が必要と判断)
6件を手動で投稿し直し
とAIは勘違いしているが、投稿時刻を1分だけずらして、他の記事と重複しないようにして投稿した(それをやったのも全てAIなので手動ではない)
さらに4件が保存されていなかったことが後で判明し、手動で投稿し直し
本文が長い記事が投稿されていなかったので、これを参考にする人は注意してください(←どう注意すればいいのか)
画像をクリックすると元のエキサイトページに飛んでしまう問題(画像を囲むリンクが残っていた)を発見
全記事の本文を解析し、このリンクだけを取り除く処理を実施
サーバーにSSH接続できる環境を整備(公開鍵認証の設定、Windows側の権限トラブルを解決)
これはサーバの管理画面から手動でやったので面倒
WP-CLIというコマンドラインツールを使い、データベース内の本文を直接書き換えて、全記事のリンクを修正
画像自動アップロードプラグインを導入
geminiが教えてくれた「Auto Upload Images」というプラグインがなかったが、「Smart Auto Upload Images」(作者: Burhan Nasir)を導入
プラグインが無効化されていた問題、サーバーのコマンドライン実行用PHPが古いバージョンで動いていてプラグインの新しい構文に対応していなかった問題を発見し、新しいPHPバージョンを明示的に使う方式で解決
数時間、画像をダウンロードし続けていると思っていたが、画像をダウンロードできていなかった
全記事を一括で再保存し、画像をエキサイト側からWordPress側へ自動的に回収
これですべての画像を移転できたと思っていたが、、、
35記事で、画像が1枚だけエキサイト側のサーバーから完全に削除されており復元不可能と判明(元記事を直接確認してもアクセス不可を確認済み)
該当する記事の一覧をリスト化して保存
エキサイトブログ側で画像が消えていたという問題。フェーズ6で手動で解決。
スクレイピング時に紛れ込んだ、広告枠を示すコメントタグの残骸テキストが本文に表示されていたため、全記事から一括削除
「続きを読む」リンクの表示文言を、デフォルトの表示から、より自然な「続きを読む」に変更
PC内の写真フォルダと記事を1件ずつ照合する作業を開始
35件中、フォルダ・記事ページを開いて見比べる作業を完了
ワードプレスに移行した直後は、画像はエキサイトブログへのリンクだった。
そして、「Smart Auto Upload Images」により、画像を含む記事を更新すると、エキサイトブログから画像ダウンロードし、サーバにアップロードされる。
しかし、エキサイトブログで欠落している画像は、リンク先の画像が存在しないので、ダウンロードされない。存在しない画像のリンクとして残ってしまった。

↓最もひどい例

欠落していた画像は全て写真で、ブログにアップロードした写真は記事ごとにフォルダにまとめてPC内に保存していた。
だから、欠落した画像の記事のフォルダを開いて、欠落した画像をアップすればいい。
しかし、欠落した画像は、元記事(エキサイトブログ)からは消えているので、PC内のフォルダ内のどの画像が欠落した画像か、目視しないと分からない。
画像が欠落した記事と、その記事の写真が入っているフォルダはAIが自動的に開いてくれたが、
35件分の欠落した画像を手動でアップロードする羽目になる。
復活させた記事:https://ma7064.com/2011/07

・ワードプレスのデザインは、元のブログのデザインの情報(CSS)をAIに教えて、元のブログと同じになるように作ってもらった。
・自分でプログラミングしなくていい
勉強はほとんど不要。分からないことはAIに聞けばいい。
パチパチとキーボードを打ってコードを書かなくていい。腱鞘炎にならない。
・自分好みのプログラムを作れる
自分だけが使いやすいプログラムを作ればいい。
不満点が出てきたらAIに修正してもらえばいい。我慢して使う必要はない。