Blogbus搬家到WordPress的Python转换脚本修改版 支持tags/分类导入
(2010.1.17 Update: 写此文的时候我用的wordpress版本是2.8.4 导入是没有任何问题的
据几位同学反映wordpress升级到2.9以后评论的格式有了一点改变 具体讨论参见下面的评论
因此需要说明 我修改的脚本适用于wordpress 2.8版本 如果已升级到2.9 请前往这里下载新的版本bus2wp.py)
一时心血来潮 想把内容从blogbus都转过来 于是在网上搜索了一番
似乎这里http://blog.huyo.org/?p=336的python脚本是能转换最多的
php的转换脚本我也看了下 其实大同小异 只不过流传的那个脚本在我的Snow Leopard自带PHP 5.3下会产生一堆warning 没办法跑起来
对比了一下blogbus和wordpress(现在是2.8.4)的xml格式 就大概知道应该怎么构造xml了
python脚本里直接把blogbus里面的tags全部转换成wp里的category了 比较囧 我导完一次多出来几百个分类
似乎是因为当时wp的xml还没有正式支持tag和category
研究了一下wp的xml格式之后发现修改很简单 只需要加上
<category domain=”category”><![CDATA[Your Category]]></category>
<category domain=”tag”><![CDATA[Your Tag]]></category>
<category domain=”tag”><![CDATA[Your Tag]]></category>
就可以了
本身Python我没有怎么接触过 不过照葫芦画瓢还是可以改改
修改好的版本在这里下载: bus2wp_modified
留了个自己id 希望原作者ant21不介意 ![]()
[...] 具体操作嘛,很简单,分享一下前辈们的好东西。 感谢ant21,Daniel,阿七!!! [...]
今天突然发现这个脚本导出的.xml导入WordPress后每篇文章的评论只剩最后一条!!!!大问题啊~~~ 难怪导入完以后发现评论怎么少了那么多。大神,应该怎么解决呢?谢谢。
我自己导过来的blogbus 评论都可以出来没有问题啊
你blogbus的xml里面看过没有 评论都在么
BlogBus版的.xml每条评论都在,导出后wp版的也每条也都在,但导入WordPress2.9.1后就杯具了
….这个的确比较汗 在后台看文章的评论总数也只有一条么? 还是说你自己设置成只显示一条评论了…
导入的时候我就觉得很奇怪,怎么日志都只有一条评论呢?(虽然我日志的评论不多)结果……
后台看的评论总数有1000多,我理论上日志有接近2300,评论也有2000多的,日志数没问题,评论就……
WordPress2.9.1的导入真把我的评论给“吃”了!对比导进去和导出来的数据,BlogBus转换导进去再导出来的数据,每篇文章的评论剩下一条,再看看WP2.9.1里建立的评论呢?没问题,好好的。杯具了,WP2.9.1导出的.xml里评论居然有这么个东西,每篇文章分id了!而转换数据的评论只有N个包裹N个评论内容,于是…… 吃我没道理!:no:
:han: 大神,有解决办法吗?应该有得救吧。
我猜估计也是wp xml格式的问题 可能2.9又改了什么格式吧
有两个办法 保险一点的办法是你找一个2.8.*的wp 导进去 然后再升级或者用wp自己的导出来
还有一个 可能是因为你开启了wp自带的嵌套评论 试试看把嵌套评论的选项先关掉 然后再导
如果这样不行 那还是先找个2.8的导吧 我自己导的时候是没有问题的…
wordpress 2.9.x似乎要求每条导入的评论有唯一id,否则就会用较晚的覆盖较早的。转换程序没有给评论加上id所以每篇文章只有最晚的评论被导入。我猜想可以通过给每条评论增加全局id来解决。我作了一点小改进在http://www.sillysnail.cn/modified-blogbus-2-wordpress-converter-fix-bug-missing-multiple-comments.htm,欢迎指教
请问Daniel用的是2.8.*格式呢?为了避免杯具再次发生,先问清楚,谢谢了!
下了个2.8.6,导进去,没问题,导出来,再导到2.9.1,也没问题,工程浩大的转换工作即将开始…… :yeah:
再次谢谢Daniel !!!不尽感激!!!!!
我写文章的时候是2.8.4的
能用就好! 哈哈 加油 :yeah:
[...] 惊天大发现,昨天的文章居然有严重的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的本地版本,研究一番没问题后再把本地 的、服务器上昨天导入的文章全部删除,同志是全部删除啊!!!! [...]
[...] 具体操作嘛,很简单,分享一下前辈们的好东西。 感谢ant21,Daniel,阿七!!! [...]
[...] 由于众所周知的原因,如何把blogbus格式的博客数据转换到其它博客程序的格式,例如WordPress,最近忽然成为了热门话题。目前比较主流是两种解决方案是冰古同学的PHP程序和ant21同学的python程序。PHP程序需要有空间才能执行,并且处理较大的数据文件有困难。Python程序相对比较简单易用,不过没有导入blogbus的“分类”,而是将blogbus的tag导入为wordpress的分类,因此对于习惯用tag的同学会导出几百个分类。Daniel同学给出了Python程序的改进,能够将blogbus的分类和tag对应地导入为wordpress的分类和tag,是目前最圆满的解决方案。 [...]
[...] 具体操作嘛,很简单,分享一下前辈们的好东西。 感谢ant21,Daniel,阿七!!! [...]
Daniel,关于wp2.9适用的python脚本,请你把py文件的下载链接指向下面这个地址好吗?放在google code上的,以后的修改会更新到这个地址
http://bus2wp.googlecode.com/svn/trunk/bus2wp/bus2wp.py
改好了
谢谢分享!
[...] 由于众所周知的原因,如何把blogbus格式的博客数据转换到其它博客程序的格式,例如WordPress,最近忽然成为了热门话题。目前比较主流是两种解决方案是冰古同学的php程序和ant21同学的python程序。php程序需要有php空间才能执行,并且处理较大的数据文件有困难。python程序相对比较简单易用,不过没有导入blogbus的“分类”,而是将blogbus的tag导入为wordpress的分类,因此对于习惯用tag的同学会导出几百个分类。Daniel同学给出了python程序的改进,能够将blogbus的分类和tag对应地导入为wordpress的分类和tag,是目前最圆满的解决方案。 但是WordPress升级到2.9.x之后,似乎自带的import程序有修改,每条评论必须有唯一的wp:comment_id才能正常导入,否则较晚的评论会覆盖较早的评论。因此Daniel同学的程序转换后每篇文章只能导入最晚一条评论。我在他的基础上增加了两句,用一个全局int给所有评论依次标号,使得所有评论可以正常导入。 需要的同学可以到这里下载修改后的程序:bus2wp.py,然后在可运行python 2的环境下执行bus2wp.py bus.xml wp.xml,其中bus.xml是blogbus格式的文件,wp.xml是将要导出为wordpress格式的文件。最后在wordpress中导入这个wp.xml,选择格式为WordPress即可。 有兴趣参与修改更新这个程序的同学 ,请访问由ant21同学维护的google code的托管页面 [...]
我遇到了这样的错误
bus2wp.py line 376, in system.exit
line 371 in main convert
line 94 in convert pubdate_element=createElement
line 268 in convert pubdate
aday=datetime.datetime(year.mon.day)
Value Error: year is out of range
我的是这样子:
Converting…
[35.58%] Total Posts 326 Converted 116Traceback (most recent call last):
File “E:bus2wp.py”, line 403, in
sys.exit(main())
File “E:bus2wp.py”, line 395, in main
convert(args[0], args[1], order)
File “E:bus2wp.py”, line 112, in convert
pubdate_element = createElement(dom, ‘pubDate’, convertPubDate(pubdate))
File “E:bus2wp.py”, line 295, in convertPubDate
aday = datetime.datetime(year, mon, day)
ValueError: year is out of range
我猜估计是有些隐藏日志,或者有些日志是在前面写的草稿后面发表,中间出现了日期错误。
期待解决
我点bus2wp下载地址是整个页面的代码。。。
右键 另存为..
[...] Blogbus搬家到Wordpress的Python转换脚本修改版 支持tags/分类导入 [...]
[...] Blogbus搬家到Wordpress的Python转换脚本修改版 支持tags/分类导入 [...]
那个会动的tag是咋弄出来的?
那个plugin叫做 WP-Cumulus 搜一下WP-Cumulus中文版
原版的对中文支持不好