前言
这一阵子,刚换了落脚地儿,没想好该去折腾什么,恰好看到可以用git page搭建一个博客,就搞了搞。关于主题啊,配置啊什么的,网上都有好多,偏偏迁移这个事儿挺麻烦,幸好有找到一前辈的脚本,可以将CSDN的博客导出为markdown格式,但是其导出来的md文件并不能直接用hexo,想要显示的好一些还需要再用脚本将它二次润色。
本人重写了润色的脚本,并增加了对CSDN的分类的爬取,将其作为hexo md文件里面的标签。
记录于此,方便大家。
还有,欢迎访问我的新博客 shiyi.fightcoder.com
环境
python 2.7
这个就不说了,os-x,linux都是自带的,window的话自己下个就完了。
BeautifulSouphttps
去BeautifulSoup官网下载源码包,解压后进入BeautifulSoup文件夹下执行下面命令即可。
python setup.py install
html2text
下载源码包:html2text-2016.9.19.tar.gz。解压后进入html2text-2016.9.19文件夹下执行下面命令即可。(和上面是一样的)
python setup.py install
脚本
CSDN转MarkDown
因为代码篇幅问题,请点击CSDN转MD脚本自行拷贝到本地,运行下面命令
python main.py -u 你的CSDN用户名
它会将你的CSDN所有的文章全部爬取并在本地以md格式保存。
MarkDown润色使其符合Hexo
跟上一步一样,请点击MarkDown润色脚本自行拷贝。没问题的话代码开头是下面这样的,按着下面的提示进行更改,然后执行就好了。
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import os
import re
import urllib2
#解析博文HTML,获取博文时间、标题标签
from bs4 import BeautifulSoup
#解决中文编码问题
import codecs
#########
#htmlpre根据各自的csdn填写对应的。
#########
#mdPath填写上一步生成的md的所在路径,小白的话就请写绝对路径吧。
#########
htmlpre = "http://blog.csdn.net/to_be_better/article/details/"
mdPath = 'csdn_md/'
mdPosts = os.listdir(mdPath)
for postName in mdPosts:
if postName.endswith('.md'):
这个脚本的功能就是去爬取对应文章的时间和分类,将这些信息对应填写到md的头部,使其符合hexo的标准,最终的结果是如下的。
---
title: 51Nod 1022 石子归并 V2 (划分型dp四边形不等式优化)
date: 2015-12-03 03:34
tags: [动态规划]
category: 技术
---
石子归并以前做过好几次,是经典划分型dp题之一,一直用的O(n3)的正常dp方法,也从未想过该怎么去优化它。
直到昨天做这道题,n的范围由往常的100改为了1000,老方法
一直超时,苦不堪言,搜到有个四边形不等式的优化方法,看帖子,画式子,拉着学长帮忙推导,总算是大概弄明白了一点。
dp(i,j) = min(dp(i,k)+ dp(k+1,j) ) + w(i,j);(i < j, i<=k<j)
dp(i,j) = MAX;(i>j)
dp(i,j) = 0;(i=j)
此处省略后面内容。。。。。。。。。