导出CSDN文章,并转成Hexo要求的样式,博客迁移
来源:互联网 发布:vs2015怎么编译c语言 编辑:程序博客网 时间:2024/06/13 02:56
想把CSDN
博客同步到拿GitHub Page
搭的独立博客上去,找了下,发现有人用Python
写了个工具,可以将博客导出为Markdown
和HTML
格式:csdn-blog-export
把它搬到了百度盘,链接: http://pan.baidu.com/s/1o8fpxGI 密码: pgbb
用法很简单(注意:博客主题需切回“碧海蓝”,我的“极客世界”主题失效): ./main.py -u CSDN用户名 -f markdown
或./main.py -u CSDN用户名 -f html
便能得到我们博客的所有博文。
拿到博文后,我想把它改为Hexo
接受的格式,主要是在.md
格式文件头添加一段文件描述,像这样:
title: Hello Worlddate: 2014-05-27 10:04:08tag: 博客category: 博客建设---
顺便把文件名该为博文名。下面操作需要同时导出.md
格式和.html
格式,Python
脚本从.html
文件中提取出博文标题和博文创建时间,将它们插入.md
文件:
#!/usr/bin/python# -*- coding: UTF-8 -*-import osimport re#解析博文HTML,获取博文时间、标题标签from bs4 import BeautifulSoup#解决中文编码问题import codecsmdPath = '/Users/wayne/blogposts/'htmlPath = '/Users/wayne/blogposts/html/'mdPosts = os.listdir(mdPath)for postName in mdPosts: if postName.endswith('.md'): #备份工具得到的文件名像这样:21049457.md,对当前文件夹中.md文件进行操作 #获取文件名中8位数字,存于prefix中,用于匹配和它对应的HTML文件 #然后从HTML文件中挖出博文发布时间,保存在timeStamp中 prefix = postName[:8] html = open(htmlPath + prefix + '.html', 'r') soup = BeautifulSoup(html) tag = soup.find_all('span', class_="link_postdate") timeStamp = tag[0].string print timeStamp #从HTML中获取博客标题,用于重命名.md文件 title = soup.title temp = title.string pos = temp.index(" - ") newFileName = temp[:pos] print newFileName #弃用! #.md文件中第一行大致长这样:# [ Objective-C常用宏定义 ](/ichenwin/article/details/52813659) #方括号中就是博文名,下面这段代码负责从.md文件第一行获取文章名 # mdFile = codecs.open(mdPath + postName, "r", 'utf-8') # contents = mdFile.readlines() # firstLine = contents.pop(0) # print "firstline:" + firstLine # newFileName = re.compile('\[([^]]+)\]').findall(firstLine)[0] # mdFile.close() #将.md中博文读入contents,往contents插入Hexo头部 #然后写回.md文件 mdFile = codecs.open(mdPath + postName, "r", 'utf-8') contents = mdFile.readlines() mdFile.close() contents.insert(0, "---\n") contents.insert(0, u"category: 技术笔记\n") contents.insert(0, "tags: iOS\n") contents.insert(0, "date: " + timeStamp + "\n") contents.insert(0, "title: " + newFileName + "\n") mdFile = codecs.open(postName, "w", 'utf-8') newContents = "".join(contents) mdFile.write(newContents) mdFile.close() html.close() #重命名.md文件 os.rename(os.path.join(mdPath, postName), os.path.join(mdPath, newFileName + ".md"))
阅读全文
3 0
- 导出CSDN文章,并转成Hexo要求的样式,博客迁移
- 博客由Hexo迁移到CSDN
- 博客搬家 -- 将博客从CSDN迁移到hexo上
- hexo博客迁移
- CSDN博客文章的备份及导出电子书CHM
- CSDN博客文章的备份及导出电子书CHM
- CSDN博客文章的备份及导出电子书CHM
- 迁移老的博客文章
- Hexo博客迁移到Coding
- CSDN迁移Hexo脚本分享
- CSDN博客迁移至Hexo之同步CSDN博文到本地MD文件
- CSDN博客迁移至Hexo之Html2Md服务(专为csdn打造)
- 使用sed把纯文本文章转化为样式自定义的CSDN博客文章
- Web Scraping with Python:使用 Python 导出 CSDN 博客全部文章(保留样式)和附带图片
- 修改CSDN博客的样式
- 我的 CSDN 博客样式
- Hexo博客主题NexT使用自定义的CSS样式
- 如何发布新文章到hexo搭建的个人博客
- javaWeb中BaseServlet的实现
- FZU 2234 牧场物语【Dp】好题!好题!
- jqueryMobile select表单
- shiro实现基于角色的权限授权
- win打开资源管理器快捷键(查看内存的占用)
- 导出CSDN文章,并转成Hexo要求的样式,博客迁移
- Android绘图,Canvas学习笔记
- python爬虫(豆瓣影评)
- Warning: unable to open an initial console.
- Codeforces 812
- 五大常用算法:分治、动态规划、贪心、回溯、分支限界
- myeclipse2017ci5正确破解的方法
- 欢迎使用CSDN-markdown编辑器
- Http和Socket连接区别