ホーム > スクレイピング, 楽天日記 > 楽天日記→WordPress移行

楽天日記→WordPress移行

楽天日記のブログを、WordPressへ移行しました。

私が先月までブログを書いておりました楽天日記から、コンテンツをダウンロードして、そしてこのブログにアップロードしました。いっきに、コンテンツが1600も増えました
(^0^)

同じ内容の複製なので、、、あまり意味がないかもしれませんけれど。

楽天日記バックアップというソフトを使って、ダウンロードしました。
そして、アップロードは以下のプログラムを使って実行したんです。
WordPressの環境に依存する部分を残しているのでそのまま使えるわけではないのですが、少し修正すれば動くと思います。

画像を貼り付けたり、リンクを変えたりはできていません。
(楽天サイトから画像が消えたら、アウトです)
またコメントやトラックバックも追加していません。

まあとりあえず、スクレイピングを利用して移行したということで大きな目標がクリアできました。

下記のプログラムは、XML-RPCに対応しているブログならば実行できると思いますので、WordPress以外にMovableTypeやブログサイトへも移行可能だと思います。

require 'time'
require 'xmlrpc/client'
require 'kconv'

user = 'wordpressのユーザー名'
password = 'wordpressのパスワード'
publish = 1 # 下書きの場合は0

# WordPressのURLに依存します
server = XMLRPC::Client.new('blog.shockby.com', '/xmlrpc.php')

# カテゴリーを設定する場合、IDはWordPressの環境に依存します
# category = [{"categoryId"=>"25"}]

# 私の楽天ブログバックアップソフトの設定
filelist = Dir::glob("solis/*.txt")

filelist.each do |filename|
  open(filename) do |f|
    title = f.gets.sub(/TITLE: /, '').chomp.toutf8
    date =  Time.parse(f.gets.sub(/DATE: /, '').chomp)
    category2 =  f.gets.sub(/CATEGORY: /, '').chomp.toutf8
    description = f.read.toutf8
    f.close

    struct = {
      'title' => title,
      'description' => description,
      'dateCreated' => date
    }



      id = server.call("metaWeblog.newPost", 1, user, password, struct, publish)

      puts "Post ID: #{id}"

      # カテゴリーを設定する場合
      # res = server.call("mt.setPostCategories", id , user, password, category)
      # puts res

  end


end