BlogBus到WordPress镜像小记
紧急告知该方法不能用于WordPress 2.9.1,会出现每篇文章的评论丢失(如果某篇文章有评论且有多条,只会剩下一条),强烈建议使用2.8.*(我用的是2.8.6),可以用2.8.* 的做WP导入再升级到2.9.*!!!!
坐在电脑前折腾了一个下午的WordPress,但我最希望的还是BlogBus能回归。
金窝银窝,还不如自家的狗窝。
今天在G老师的帮助下找到了几个文章,终于把非标准的BlogBus .xml导出数据转变为标准的WordPress eXtended RSS (WXR) .xml,然后又在yo2老大oneoo设计的DivXml.exe帮助下把转换成功的文件分割为小块。
具体操作嘛,很简单,分享一下前辈们的好东西。
用的是Python转换法,程序是用Daniel的(下载:bus2wp_modified),因为他说已经解决了BlogBus到WordPress的分类及标签问题。至于方法嘛,原创是ant21的,但阿七说得更具体,如下:
1.在BlogBus的后台导出日志,保存XML文档。具体方法:进入BlogBus后台,博客>博客设置>导入导出>导出日志>保存为XML格式,假定保存的名字为bus.xml。放在D盘根目录,即D:\bus.xml。
2. 下载python以及bus2wp.zip。python的下载地址是:http://www.python.org/ftp/python/2.5.1/python-2.5.1.msi(我已经在用2.6版本了),bus2wp_modified。下载python后,安装,解压下载的bus2wp_modified到D盘根目录,即D:\bus2wp.py。
3. 点击开始菜单>运行>输入cmd,回车进入Windows的命令行窗口>输入d:,回车,转到D盘目录下。输入bus2wp.py bus.xml wp.xml,回车,等待转换…>如果没有出错,就成功了!如果提示出错,检查导出的bus.xml,发现并解决问题(会提示是哪行哪列出错的)!建议用Notepad++进行检修,毕竟用系统自带的记事本实在太简陋。xrspook在转换过程中就出现过问题,不知道为什么代码里有些很诡异的“sub”,每次都会卡死。
4. 登录安装好的WordPress后台,导入日志。具体方法:管理>导入>选择“WordPress”,从WordPress导出文件中导入日志、评论、自定义字段、页面和分类。选择导入文件D:\wp.xml,导入>选择导入后日志所属作者,确定导入(可选上导入附件)。成功!
下图就是xrspook转换过程中的坎坷,修改多次才成功啊!转换共用66秒。原BlogBus的.xml大小为11.1MB,转换成WP型后减肥了,只有8.87MB。原先的.xml不能用DivXml.exe切分,但转换后的就可以了,呵呵,再次谢谢oneoo。
单机是用xampp搭建的php,而强大的它允许上传的WXR能达到128MB,所以切不切分无所谓,但是转换时间较长,我可有接近2300篇历史记录啊!但如果用在线上服务器不切分基本是不行的,所以测试不切无所谓,动真格的时候就得切了。
导入部分切分后的文件你就会发现虽然数据从BlogBus全部转化为WordPress了的,但还是有点瑕疵。我暂时发现的是:在评论的回复中,BlogBus把客人的留言和blog主的回复都放到<CommentText></CommentText>里,而且都是显示为“博主 对 ** 的回复:****-**-** **:**:**(后面那个为日期及时间)”。“博主”这个好不刺眼,于是我就全部重新替换为“xrspook”了,否则,真的让人很头大。不知道WordPress的导出数据是如何区分留言者和回复者呢,应该不会像BlogBus这般囫囵吞枣吧,毕竟WP是支持多层回复的,不像BlogBus那样只局限于blog主人对客人的回应。
如释重负般完成了WP模板的初步修改和历史数据导入。
但说到底,这还不是我从前大家所熟知的老家啊!
[…] 惊天大发现,昨天的文章居然有严重的bug,因为WordPress 2.9.1不支持那个导入的文件,所以每篇文章的评论都会只剩下1条(如果某文章是有评论,且不为一的话)。虚心请教了Daniel,他觉得是WP 2.9.*又对WXR做了什么新限制,他写那个脚本的时候用的是WP 2.8.4。今天重新下载了个WP 2.8.6,试着导进去,没问题!!!!评论都回来了,其它一切都还好。我的天!但我总不能把原来的WP 2.9.1从服务器删除然后重新装个WP 2.8.6,再升级吧?于是我选择了个更折腾的方法,把东西先导入2.8.6,再用它导出,试验导入到2.9.1的本地版本,研究一番没问题后再把本地的、服务器上昨天导入的文章全部删除,同志是全部删除啊!!!! […]
[…] 4、BlogBus到WordPress镜像小记 […]
我遇到了这样的错误
bus2wp.py line 376, in system.exit <main>
line 371 in main convert
line 94 in convert pubdate_element=createElement<dom,'pubdate',convertPubDate>
line 268 in convert pubdate
aday=datetime.datetime(year.mon.day)\
Value Error: year is out of range
日期出错了,查找0000-00-00 00:00:00,把前面的“0000-00-00”改成有效的年月日格式就没问题了。详情请参看:http://198.12.77.14/posts/2495
[…] 基本参考了BlogBus到WordPress镜像小记这篇文章的步骤,噩梦从此便开始。所有步骤都正确,就是出现了一下一行的运行错误,现实year这个值超出范围。 […]
[…] 基本参考了BlogBus到WordPress镜像小记这篇文章的步骤,噩梦从此便开始。所有步骤都正确,就是出现了一下一行的运行错误,现实year这个值超出范围。 […]