WordPressからBloggerへの移行方法

WordpressからBloggerへの移行手順は以下となります。

WordPressからBloggerへのコンバートは以下のURLより実行出来ます。
http://www.wordpress-to-blogger-converter.appspot.com/

但し、上記サイトはつながらないことも少なくないので、その場合は、移行ツールをローカルで実行してコンバートを実施します。今回は、Windows 10のWSLでUbuntuを使用します。多分これが一番楽だと思います。
ツールの使用にはpythonが必要になるので、事前にpythonもインストールします。

WSLのUbuntuインストール手順(事前作業)

1.
スタートメニューから右クリックで管理者権限でPowerShellを起動

2.
PowerShellより、以下のコマンドを実行
>Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux ※実行後に再起動が必要


3.
Microsoft StoreでUbuntuをインストール
あとはUnixのユーザとUnixのパスワードを入力して、Ubuntuはインストール完了。



4.
pythonのインストール(今回はpythonは2系が必要となるため、python-minimalの方を入れる)
最初にパッケージのアップデート(“apt update”)しないと”python-minimal”のインストールに失敗してました。

>cd /mnt/c

>mkdir test


2.
エクスポートツールのダウンロード
Google Code Archive - Long-term storage for Google Code Project Hosting.
https://code.google.com/archive/p/google-blog-converters-appengine/downloads

・コマンド実行例
>tar -zxvf google-blog-converters-r89.tar.gz


Wordpressのエクスポート→Bloggerへのインポート

1.
Wordpressのエクスポートは画像の通り。インポートの都合もあるので、ファイルサイズは5Mb程度に分割するのが無難。


2.
WordPressのエクスポートデータを、”c/test/google-blog-converters-r89/bin”に置く

3.
WSLの階層移動
書式:./wordpress2blogger.sh 「wordpressのxml」 「bloggerのxml」 

・実行例

>./wordpress2blogger.sh wordpress.2018-05-04.xml  test.xml


5.
Bloggerでのインポートは以下の場所から行う。


記事の調整&画像データのアップロード

記事の文章とコメントについては、大体は引き継がれますが、Bloggerでインポートが出来ない場合は、その記事については手作業で追加する必要があります。また、記事の投稿時刻もJSTで引き継がれずにGMT+9で9時間遅れた形で引き継がれる。7:00に投稿したものは、16:00に置き換えられます。

あとは画像については旧URLのものを取りに行ってるので、全ての画像のアップロードのやり直し、記事ごとに空白行の処理などがおかしいものがあるので個別調整を行えば、データの移行は完了となります。
最も、今回850記事くらいだったので、かなりの労力が必要となりますので、bloggerへ移行するという目的がなければ、別のブログサービスに移行したほうがいいかもしれません。

3 件のコメント :

  1. おくとぱす2018年5月9日 10:32

    > 記事の投稿時刻もJSTで引き継がれずにGMT+9で9時間遅れた形で引き継がれる
    ちょっと興味を持ったので、自分も google-blog-converters をダウンロードして python ソースを見てみました。
    単純に日付文字列をパースして、そのままUTCにしているみたいなので、以下のような修正をするとよいかも(未確認です)。

    import time
    from datetime import datetime
    def jst2utc(time_tuple):
    """有無を言わさず -9時間する"""
    return datetime.fromtimestamp(time.mktime(time_tuple)-3600*9).timetuple()

    # wp2b.py の509行目あたり
    def _ToBlogTime(self, time_tuple):
    """Converts a time struct to a Blogger time/date string."""
    #return time.strftime('%Y-%m-%dT%H:%M:%SZ', time_tuple)
    return time.strftime('%Y-%m-%dT%H:%M:%SZ', jst2utc(time_tuple))

    今後、同様なことをされる方々のための一助になれば幸いです。

    なお、タイムゾーン関係は自分には鬼門だということは内緒ですw
    上記のことだけを調べるのにもググりまくりましたw

    返信削除
    返信
    1. コメントありがとうございます。
      pythonはよく分からないので苦労しましたが、別ブログで上記のコードで確認したところ、問題なく反映されることを確認しました。

      from datetime import datetime
      def jst2utc(time_tuple):
      [Tab]return datetime.fromtimestamp(time.mktime(time_tuple)-3600*9).timetuple()
      ↑returnの前にTabが必要。

      これを間違えると"IndentationError: unexpected indent"が出ますね。

      #return time.strftime('%Y-%m-%dT%H:%M:%SZ', time_tuple)
      return time.strftime('%Y-%m-%dT%H:%M:%SZ', jst2utc(time_tuple))

      こちらは下のコードをそのまま置き換えたら大丈夫でした。

      因みにJSTの分は、恐らくpython3系のような気がします。最初に確認したらエラーが出ましたので・・・。

      削除
  2. おくとぱす2018年5月9日 11:09

    前のコメントを投稿してからふと思いましたが、単純に

    return time.strftime('%Y-%m-%dT%H:%M:%SZ', time_tuple)



    return time.strftime('%Y-%m-%dT%H:%M:%S', time_tuple)

    にする(UTC を表す 'Z' を削除する)か、または 'Z' のかわりに 'JST' を付けるだけで行けるのかも (^^;

    返信削除

コメントは承認制とさせていただいております。