一、下载博客园备份xml格式文件

点击下载按钮后选择 xml格式下载

二、上传xml文件到目标服务器并批量下载图片

新建一个image目录,上传xml到image同级目录,进入image目录,使用以下脚本批量下载博客园图片。备份位置

cd  /root  && mkdir  image 
cd image

for  i in   grep -Eo 'src="[^"]+"' ../cnblogs_blog_netsa.20250630143907.xml | sed 's/src="//;s/"//g'|grep -E 'png|jpg'; do timeout 5s wget  $i; done

此时当前目录应该是所有你博客园的所有图片

下载目录到自己电脑手动到halo后附件模块上传,建议新建一个图册便于区分,上传完毕,此时图片迁移完毕,接下来是文章。

三、文章迁移导入

3.1 处理xml文件图片链接地址为相对路径

 perl -pe 's|(]*src=")(https?://[^"]+/)([^"]+)|\1/upload/\3|g' cnblogs_blog_netsa.20250630143907.xml > new.xml

此时xml数据库中所有图片的地址已经处理为相对于域名的相对地址,类似/upload/abc.jpg格式,xml导入后会自动引用图片地址。

3.2 处理文章标题(非必须)

博客园导出的xml文章标题默认都自动追加了原博客名称,根据需要删除掉,非必须步骤。

sed -i  's/-忙碌在路上//g' new.xml 

3.3 导入到halo博客

同时使用halo的迁移插件Atom Feed导入new.xlm即可

图片会自动识别,迁移完成。