最近自己搭了一个个人主页,终于可以不用忍受第三方博客平台的限制写一些自己的文章了,可是搭好了博客如何将自己原来的文章迁移到新的博客地址呢?如果手动一篇一篇导出效率太低,而且工作量太大,所以笔者写了个脚本将原来博客平台(csdn)上自己的文章批量爬取到本地并做相应的格式转换以保证可以直接发布到hexo下的博客平台。
操作环境
MacBook Pro (13-inch, 2018, Four Thunderbolt 3 Ports)+pycharm+python3.6
目标
将csdn下的博客批量导出并转化为hexo可以直接解析的格式,对于每一篇文章,我们重点关注以下信息:
- 标题(title)
- 正文
- 发表时间(date)
- 所属类别(categories)
- 对应标签(tags)
括号中的英文就是hexo下博客需要符合的格式标准,我们只需要将csdn中每一篇文章的上述属性爬取下来并以特定的格式写入文件即可,下面看实现:
文章爬取
首先我们应该针对csdn的博客系统写一个通用的request函数(方法):
1 |
|
这里的headers里面的信息是通过查看页面的审查元素信息找到的。
然后我们就可以发起请求,注意看代码注释:
1 |
|
然后按照拿到的每一个id对单篇文章进行爬取和解析并转化为hexo可解析的markdown格式:
1 |
|
至此就完成了csdn上博客的导出以及格式化为hexo下的博客格式,然后将导出的文章(默认在mds目录下)放在hexo博客目录的source/_post下即可。