2008-09-19

Blogger in Draft の Import/Export 機能

Blogger in draft に、Blogger の Export/Import 機能が追加されている (追加されたのは 6 月末)。

特徴

Export 機能の特徴は以下の通り。

  • 出力形式は Atom (XML)
  • ファイル名は blog-MM-DD-YYYY.xml。例えば今日 Export したなら blog-09-18-2008.xml になる
  • 対象は全てのエントリーと全てのコメント
  • 画像の Export はサポートしていない

面白いのは、Export された xml ファイルの中に、ブログの記事は入っていないこと。ブログの記事本文はあくまで Blogger のサーバーの中にある。xml ファイルの中には、「何月何日に○○さんが書いたエントリーをこの順番で入れなさい」という情報がズラズラと書かれている。極端な話、Export されているのは「記事本文へのリンク集」といってもよいでせう。

そんなわけで、Blogger がデータを Import するというのは、元々 Blogger サーバーの中にある本文データに目次を与えるような作業になる。二つのブログを統合するというのも、目次部分を並べ替えて結合しているだけ。記事本文は何一つ移動もコピーもしていない。大量のデータを扱う Blogger (というか Google) らしいやり方だね。

こんな仕様だから、Blogger 以外で Export したブログ・データ (例えば MovableType) を Blogger に Import するのは難しさう。

Import/Export のやり方

Blogger in draft にアクセスして、「設定」から「基本」タブをクリック。一番上に「ブログをインポート (Import blog)」「ブログをエクスポート (Export blog)」というリンクがあるので、それをクリックする。それだけ。

写真付き解説はクリボウさんのエントリーをどうぞ。

あとがき

この機能が追加された時、Export と聞いて「ブログのバックアップが簡単に取れるのねぇ」と思ってた。で、忙がしくてエントリーにもしなかった。

昨日、clmemo@aka: Blogger のバックアップを取る方法にコメントが入って、Export 機能でバックアップ取る方法もあったのにエントリーにしなくて悪いことしたな... と反省。で、記事を書くために少し調べてみたら、何とバックアップには適さない、といふことが分かった。びっくり。

もし、この事を知ってたら 6 月の時点でエントリーにしていたでせうね :p

申し訳ないです。Export されたファイルの中には、記事本文も入っておりました。当ブログの Export ファイルは 6 MB になって、これをエディターで開いたところ、カーソル移動や検索が激重になりました。そのせいで、ファイルの末尾を見ようとしているのに先頭部分だけしか表示されていなかったようです。結果、6 MB の Export ファイルの中には本文が入っていないと勘違いしてしまいました。ご指摘して下さった、Hit さん。ありがとうございます。

11 comments:

  1. This comment has been removed by the author.

    ReplyDelete
  2. 私のブログを export してみたら最初の方は Blogger の設定一覧があって、その後にちゃんと本文も export できましたよ。

    ReplyDelete
  3. Hit さん、こんにちは。今回のエントリーは、私の大変な勘違いでした。ご指摘ありがとうございます。

    早速、修正しました。

    # ハァ、このブログの黒歴史として早く過去に追いやりたい orz

    ReplyDelete
  4. うちでは何度試しても尻切れトンボ(ローカルに保存したファイルの尻の方が途中で切れてタグも閉じてない)で諦めました。こういう症状の人は他に居ないんでしょうか。

    ReplyDelete
  5. muri さん、はじめまして。

    Export したファイルを見てみた所、ファイルの最後は私のブログの最初の記事ではありませんでした。ファイルの末尾は <updat で終わっていました。正に尻切れトンボという感じです。

    しかし、エディターで検索してみると、最初の記事はファイルの途中 (かなり後ろの方です) に見つかりました。Blogger が何をやっているのかは分かりませんが、一応全てのエントリーをダウンロードしているのではないかと思います (予想ですが)。

    というわけで、ファイル内で一度 Search してみてはいかがでしょう。

    あと、テスト用のブログを一つ作って、Export したファイルを Import してみるのも手かもしれません。

    ではでは。

    ReplyDelete
  6. @akaさん御回答ありがとうございます。
    entry, idタグに'.post-'を含む物が記事のようなので数えてみましたが、やはり全記事数の半数程でぷっちり切れてしまっていました。
    もしかしたら単にうちの変なネット環境のせいかもしれません(100Kbpsの低速回線でfirefox)。ダウンロード時にサイズ不明でがんがん送ってきますし。

    ReplyDelete
  7. ううむ。そうですか。一筋縄ではいかないものですね。

    Export 機能が Blogger でも使えるようになったら、何か修正が入るかもしれません。そこら辺に期待でしょうか。

    ReplyDelete
  8. muri さんへ

    Blogger でバグ修正が行なわれました。これで解決しているかもしれません。

    ref. clmemo@aka: Blogger in draft の Export 機能のバグが修正された

    ReplyDelete
  9. @akaさん、情報ありがとうございます。
    今度は最後のfeedタグがきちんと閉じているので、どうやら直ったと見て良いようです。今までは回線速度に依存する実装だったようですね(笑)。

    ReplyDelete
  10. エクスポートしたファイルのチェック例です(何かの役に立つか分りませんけど)。

    # python+BeautifulSoupを使います。
    >> import re
    >> from BeautifulSoup import BeautifulSoup as Soup

    # エクスポートしたファイルを読み込む。
    >> soup = Soup(open('blog-09-24-2008.xml','rb').read().decode('utf-8'))

    # entryタグを抽出
    >> entries = soup('entry')
    >> len(entries)
    238

    # idタグに'.post-'を含むエントリは、記事、またははコメントらしい。
    >> posts = [i for i in entries if '.post-' in str(i('id')[0].contents[0])]

    # 記事とコメントの総数
    >> len(posts)
    195

    # そのうち、記事本体はcategoryタグに文字列'kind#post'を含んでいるらしい。
    >> articles = [i for i in posts if i('category',{'term':re.compile('.*kind#post')}]

    # 記事総数。私のブログと一致しているようです。
    >> len(articles)
    134

    # コメントはcategoryタグに文字列'kind#comment'を含んでいるらしい。
    >> comments = [i for i in posts if i('category',{'term':re.compile('kind#comment'))]

    # コメント総数。195-134=61で、一致しているようです。
    >> len(comments)
    61

    ReplyDelete
  11. muri さんへ

    返事が遅くなくて申し訳ないです。

    > どうやら直ったと見て良いようです。

    Good News :)

    > エクスポートしたファイルのチェック例です

    ありがとうございます。
    # Python は、まだまだ初心者なんで勉強しないと ^^;

    ReplyDelete