1.CSDN的博客使用的是MetaWeblog Api,可以使用xml-rpc进行操作。下面的代码演示了怎样使用api发布博客
其中需要注意的是categories是一个数组。
2.知道了怎样使用api发布博客之后,我们就该进行下一步:读取百度空间的博文内容了。首先定义一个BaiduHi的class,用来存放从百度博客读取出来的数据。
3.读取百度空间博文内容,注意:我们使用的是游客权限来读取百度空间的内容,如果有私密信息,需要将其公开之后程序才能读取。另外我使用的百度空间模板为“80後青春”,如果您使用的不是此模板,html源码可能会不同,解析就可能失败。如果使用本程序请保持和我的模板一致。板式为空间装扮-板式-显示出来的第二行第二列那个
4.我们现在完成了写CSDN博客与读取并解析百度空间博文的工作。接下来需要把它们连起来,完成导入
5.至此如果一切顺利的话您的博文应该已经全部导入到CSDN博客了,如果有一些小问题,如网络超时,操作太频繁并CSDN暂时封锁的话,在再次执行导入之前就需要将原来导入的数据删除,或者是跳过才能保证CSDN博文不会重复。下面是一个删除CSDN已有博文的方法:
6.好了,经过耐心操作我们的导入工作应该已经完成了。
本程序有不足的地方:
- 不支持图片导入
- 只是针对笔者自己博客量身定做的程序,里面许多情况如url中包含汉字,模板的通用性等问题没有加以考虑,在使用的时候应该根据实际情况加以修正
- 有少数博客导入失败,笔者130多篇博客有4篇导入失败,不过由于比较少,可以用手动发帖来弥补
- 速度问题 由于CSDN会短暂屏蔽频繁的访问,所以本程序在导入一篇博客后采取了休眠5秒钟的方法,这样会降低速度。另外如果百度上面的博文过多的话建议采集百度数据的时候也加上休眠时间,防止封锁
7.使用到的包为xml-rpc,您可以在这里下载到最新版本。CSDN博客API在这里可以找到。程序中涉及的发帖,删帖所需的参数均在api中有详细说明