虎口脱险记:从 MSN Spaces 搬到 WordPress

M 终于受够了“极品中的极品”MSN Spaces,决定搬家,于是我和谷哥就开始想办法。

M 最初的打算是搬去 blogbus。作为国内最早的一批 BSP,blogbus 一直在模仿(如果不是说“克隆”的话)并试图超越 Blogger,所以从理念上和技术上来说,我个人认为 blogbus 是大陆血统最纯正技术含量也最高的 BSP,而且 blogbus 也是最早(?)提出和提供“博客搬家”服务的一个。于是我信心十足地准备动手。

经过多次尝试之后,我沮丧地发现 blogbus 的搬家功能现在不能支持 Live 版的 MSN Spaces。(这个例子可见此时 blogbus 的上进心及客户关怀与其名气成反比例增长,已不复当年。)问过谷哥后得知一些第三方的博客搬家工具,比如 BlogBakmaikrBlog BackupBlog Mover 等,但均告失败。至于通过 RSS 导入,因为一次只能导入 20 篇左右,而且需要不停在原博客删除已导入过的帖子,太麻烦而且风险也大,没有考虑。

无奈之下转向门户网提供的博客搬家工具,试图“曲线救国”。我尝试了网易的一键搬家,结果有点意外,搬家很成功——帖子数量完整、日期正确、评论与图片俱在,只是没有了分类。然后又试图用 blogbus 的工具将搬到网易的博客再搬到 blogbus,结果失败——帖子数量完整,但没有分类、日期错误、某些帖子格式错乱。

难道就这样结束?你身后还有漫长的路……(引自那英早年的励志歌曲《脚步》)

这些门户网的博客肯定是不能呆的,理念与技术都不对路(愚见),再加上坊间时常能听到某门户乱删用户的帖子或者某网站假冒名人开博云云,劣迹斑斑。至于曲线救国,理论上来说,我若继续尝试在各门户之间搬来搬去,还是有可能找到一个最终能搬到 blogbus 去的上家,但谁有那么多闲工夫玩这个;再说,又何必死皮赖脸非 blogbus 不嫁!

于是决定弃暗投明搬到 WordPress ——可以完全自主的地盘。

这个也不容易,谷哥费了老劲也没能帮我找到方法,最后还是谷哥的美国老兄(英文版)出面才在 Google Code 里找到唯一的一个从 MSN 直达 WordPress 的软件。顺藤摸瓜又找到了创造这个工具的大虾 Wei Wei (顺便说一句,我之前一直以为这位牛人是 Google 的高手,后来才注意到他还是清华的在读研究生。失敬。)。Wei 在他的 blog 里(用英文)详细地说明了搬家步骤,另外,有位不知名的好心人对步骤做了翻译并补充了一些实践经验

Wei 的程序是基于 Python 编写的,虽然他已经尽可能做了详细说明,而且还有翻译和补充,但对于我等完全没有接触过 Python 的人来说,操作难免仍有困难。为此我给 Wei 写过邮件求助,他很热心,回信很快,但毕竟是忙人,而且我的问题可能对他根本不是问题,所以并没有能够帮上忙。最后我只能使出吃奶的劲来研究,而且居然还真被我研究出来了,嘿嘿。

一些补充经验:

1. 安装了 Python 后(以下均假设 Python 被安装在默认目录),若在命令行里直接运行 python 命令无效时,运行以下命令:

set path=C:\Python25

2. UnicodeDecodeError 错误似乎不可避免,所以你最好事先按要求修改 C:\Python25\Lib\sgmllib.py 文件第 394 行,或者你可以直接用下载包(附后)里已经修改过的文件覆盖到相应安装文件夹中替代原文件。然后,无论用那种方式,一定要在命令行中进入该文件所在的目录并运行以下命令:

cd\

cd C:\Python25\Lib

sgmllib.py

下图为实际操作输入命令截图,此例中 Python 安装在默认路径,同时 Wei 的搬家程序放在 C:\MSN2WP 目录下。

2007-12-24_164045

这个导出的过程很慢,你可以去洗个澡先。 如果没有其他意外,你就会在得到一个标准的 WP 导入文件,直接导入到你的 WordPress 博客即可。

如此导入可以保留全部完整和格式正确的帖子,分类和评论也仍在,但目前有一个 bug 就是分类是一个文章一个文类,所有会有若干个重复的分类,每个分类只有一篇甚至零篇文章的情况。不过这不算大问题,辛苦一点手动改就好了。

至此大功告成,M 的新家总算落成。非常感谢牛大侠 Wei Wei 写的程序和帮助,以及所有不知名的通过谷哥向我传授知识的人们。我感恩的实际行动就是写了本文,希望对后来者有所帮助。

附整合过的从 MSN Spaces 搬家到 WordPress 所需的全部程序和文件:

《虎口脱险记:从 MSN Spaces 搬到 WordPress》有18条评论

  1. Thank you, and the great thing you created.

    Never mind, I understand how busy you would be. And, you did help me a lot. 😉

    When you update released, please just let me know.

    回复
  2. hi,最近有几个朋友问如何从msn搬家的方法,在网上搜了一通,也试过一些软件,但总归有这样那样的问题。最终看到你这篇文章。无奈我对python等程序完全没有了解,于是有个偷懒的念头……

    能否劳烦你帮我的两位朋友用这个方法导出成wp导入文件,然后用email发给我?

    这的确是个不情之请,如果你不觉得太冒昧又愿意帮忙的话,我再把这两位朋友的msn空间地址发给你。

    无论如何,都向你表示感谢:)

    回复
  3. 我在搬家的过程中也遇到了一些问题,由于对语言一窍不通,无法解决,也发了邮件询问你拉,你如果方便的话能不能也帮我转一下,然后把xml文件发给我啊,不胜感激!!

    回复
  4. 你好,我按照这方实试了,但是提示出错,想问问有没有什么解决办法啊
    出错信息在下面,我一点都看不懂,好像是说不支持img标签,但这个是很普通的阿。。。。
    LINE 540 ERROR Unexpected error
    Traceback (most recent call last):
    File “live-space-mover.py”, line 538, in
    main()
    File “live-space-mover.py”, line 461, in main
    i=fetchEntry(permalink,datetimepattern,mode)
    File “live-space-mover.py”, line 116, in fetchEntry
    if leftOrRightATag.img[‘src’].find(‘~Left~’)>0 :
    File “F:\Python25\BeautifulSoup.py”, line 360, in getattr
    raise AttributeError, “‘%s’ object has no attribute ‘%s'” % (self.class.name, attr)
    AttributeError: ‘NavigableString’ object has no attribute ‘img’

    回复

发表评论