cnblogs博客迁移到hexo
cnblogs博客备份
备份地址:https://i.cnblogs.com/BlogBackup.aspx?type=1
备份文件为xml格式,打开备份文件,如下所示:
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>博客园-</title><link>http://www.cnblogs.com/shijingjing07/</link><description /><language>zh-cn</language><lastBuildDate>Fri, 20 Jan 2017 13:20:14 GMT</lastBuildDate><pubDate>Fri, 20 Jan 2017 13:20:14 GMT</pubDate><ttl>60</ttl><item><title>博客迁移</title><link>http://www.cnblogs.com/shijingjing07/archive/2017/01/16/6290517.html</link><dc:creator>迪米特</dc:creator><author>迪米特</author><pubDate>Mon, 16 Jan 2017 09:44:00 GMT</pubDate><guid>http://www.cnblogs.com/shijingjing07/archive/2017/01/16/6290517.html</guid><description><![CDATA[<p>博客迁移至 <a href="https://shijingjing07.github.io/" target="_blank">https://shijingjing07.github.io/</a></p>]]></description></item><item><title>cookie欺骗</title><link>http://www.cnblogs.com/shijingjing07/archive/2017/01/06/6256622.html</link><dc:creator>迪米特</dc:creator><author>迪米特</author><pubDate>Fri, 06 Jan 2017 07:55:00 GMT</pubDate><guid>http://www.cnblogs.com/shijingjing07/archive/2017/01/06/6256622.html</guid><description><![CDATA[<p>1.什么是cookie欺骗<br />改变cookie的值,发给服务器,就是cookie欺骗。<br />正常情况下,受浏览器的内部cookie机制所限,每个cookie只能被它的原服务器所访问,我们操作不了原服务器。</p>
<p>2.cookie使用示例</p>
<p>index.html 写入cookie {'username':'zhangsan','psw':'123'}</p>
<div class="cnblogs_code">
<pre><span style="color: #0000ff;"><!</span><span style="color: #ff00ff;">DOCTYPE html</span><span style="color: #0000ff;">></span>
<span style="color: #0000ff;"><</span><span style="color: #800000;">html</span><span style="color: #0000ff;">></span>
<span style="color: #0000ff;"><</span><span style="color: #800000;">head</span><span style="color: #0000ff;">></span>
<span style="color: #0000ff;"><</span><span style="color: #800000;">meta </span><span style="color: #ff0000;">http-equiv</span><span style="color: #0000ff;">="Content-Type"</span><span style="color: #ff0000;"> content</span><span style="color: #0000ff;">="text/html; charset=utf-8"</span><span style="color: #0000ff;">/></span>
<span style="color: #0000ff;"><</span><span style="color: #800000;">title</span><span style="color: #0000ff;">></</span><span style="color: #800000;">title</span><span style="color: #0000ff;">></span>
<span style="color: #0000ff;"><</span><span style="color: #800000;">meta </span><span style="color: #ff0000;">charset</span><span style="color: #0000ff;">="utf-8"</span> <span style="color: #0000ff;">/></span>
<span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">type</span><span style="color: #0000ff;">="text/javascript"</span><span style="color: #ff0000;"> src</span><span style="color: #0000ff;">="jquery.min.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>
<span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">type</span><span style="color: #0000ff;">="text/javascript"</span><span style="color: #ff0000;"> src</span><span style="color: #0000ff;">="jquery.cookie.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>
<span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">type</span><span style="color: #0000ff;">="text/javascript"</span><span style="color: #0000ff;">></span><span style="background-color: #f5f5f5; color: #000000;">
$.cookie(</span><span style="background-color: #f5f5f5; color: #000000;">'</span><span style="background-color: #f5f5f5; color: #000000;">username</span><span style="background-color: #f5f5f5; color: #000000;">'</span><span style="background-color: #f5f5f5; color: #000000;">, </span><span style="background-color: #f5f5f5; color: #000000;">"</span><span style="background-color: #f5f5f5; color: #000000;">zhangsan</span><span style="background-color: #f5f5f5; color: #000000;">"</span><span style="background-color: #f5f5f5; color: #000000;">);
$.cookie(</span><span style="background-color: #f5f5f5; color: #000000;">'</span><span style="background-color: #f5f5f5; color: #000000;">psw</span><span style="background-color: #f5f5f5; color: #000000;">'</span><span style="background-color: #f5f5f5; color: #000000;">, </span><span style="background-color: #f5f5f5; color: #000000;">"</span><span style="background-color: #f5f5f5; color: #000000;">123</span><span style="background-color: #f5f5f5; color: #000000;">"</span><span style="background-color: #f5f5f5; color: #000000;">);
</span><span style="color: #0000ff;"></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>
<span style="color: #0000ff;"></</span><span style="color: #800000;">head</span><span style="color: #0000ff;">></span>
<span style="color: #0000ff;"><</span><span style="color: #800000;">body</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"></</span><span style="color: #800000;">body</span><span style="color: #0000ff;">></span>
<span style="color: #0000ff;"></</span><span style="color: #800000;">html</span><span style="color: #0000ff;">></span></pre>
</div>
<p>运行index.html,通过Chrome F12开发者工具,可以看到cookie信息。</p>
<p><img src="http://images2015.cnblogs.com/blog/300946/201701/300946-20170106155059847-848303078.png" alt="" /></p>
<p>可以看到cookie要和domain域名对应。每个cookie只能被对应的域名所访问,其他域名无法访问。</p>
<p>3.如何进行cookie欺骗</p>
<p>修改hosts,将域名(dev.test.com)对应的ip转为自己的ip(121.43.113.200),写在自己的ip下修改cookie,会发现域名对应的cookie更改了。<br />步骤:<br />1)修改host<br />121.43.113.200 dev.test.com<br />2)将index.html放入服务器121.43.113.200<br />3)访问url:dev.test.com/index.html<br />4)查看cookie信息<br /><img src="http://images2015.cnblogs.com/blog/300946/201701/300946-20170106155240675-1380622233.png" alt="" /><br />5)还原host<br />#121.43.113.200 dev.test.com<br />6)访问url:dev.test.com,会发现dev.test.com中的cookie已被修改。</p>
<p>4.cookie欺骗防止<br />随机码防止cookie欺骗<br />原理:在服务端生成唯一随机码,每次提交cookie时带上随机码,和服务端的随机码校验。</p>]]></description></item></channel></rss>
将备份文件解析为.mk文件
备份文件中每个item节点,对应一篇文章。
将每个item中的title,pubDate,description解析出来,写入.mk文件。
代码如下所示:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import html2text
import xml.sax
import datetime
import sys
reload(sys)
sys.setdefaultencoding('utf8')
class MovieHandler( xml.sax.ContentHandler ):
def __init__(self):
self.CurrentData = ""
self.title = ""
self.pubDate = ""
self.description = "" # 元素开始事件处理
def startElement(self, tag ,attributes):
self.CurrentData = tag
if tag=="item":
self.title = ""
self.pubDate = ""
self.description = "" # 元素结束事件处理
def endElement(self, tag):
if tag == "item":
try:
filename=self.title+".md"
fo = open("D:\\certs\\"+filename,'a')
fo.write( "---\n")
fo.write("title: "+self.title+"\n")
GMT_FORMAT = '%a, %d %b %Y %H:%M:%S GMT'
writedate=datetime.datetime.strptime(self.pubDate, GMT_FORMAT)
fo.write( "date: "+writedate.strftime('%Y-%m-%d %H:%M:%S')+"\n")
fo.write( "tags: \n")
fo.write( "categories: \n")
fo.write( "---\n")
writedesc=html2text.html2text(self.description)
fo.write(writedesc)
fo.close()
except Exception as error:
print error.message # 内容事件处理
def characters(self, content):
if self.CurrentData == "title":
self.title = content
elif self.CurrentData == "pubDate":
self.pubDate = content
elif self.CurrentData == "description":
self.description += content if ( __name__ == "__main__"): # 创建一个 XMLReader
parser = xml.sax.make_parser()
# turn off namepsaces
parser.setFeature(xml.sax.handler.feature_namespaces, 0) # 重写 ContextHandler
Handler = MovieHandler()
parser.setContentHandler( Handler ) parser.parse("CNBlogs_BlogBackup_1_201701_201701.xml")
程序执行后,在D:\certs目录下就生成了hexo网站需要的.mk文件。
如下所示:
将生成的.mk文件copy到hexo _posts目录下
D:\hexo\source\_posts
重新生成静态文件
hexo c
hexo g
hexo s
在浏览器中打开 http://localhost:4000/
结果如下:
备份文件中没有分类,标签节点,所以无法将这两部分迁移到hexo。
cnblogs博客迁移到hexo的更多相关文章
- Hexo博客迁移
Hexo用户指南 - 博客迁移 GitHub+Hexo搭建博客的过程比较平滑,但是它的配置却非常耗时,一旦电脑出现问题或者需要在另外一台电脑上写博客,那么Hexo博客的迁移非常就让人头疼.下面参考其他 ...
- 利用爬虫爬取指定用户的CSDN博客文章转为md格式,目的是完成博客迁移博文到Hexo等静态博客
文章目录 功能 爬取的方式: 设置生成的md文件命名规则: 设置md文件的头部信息 是否显示csdn中的锚点"文章目录"字样,以及下面具体的锚点 默认false(因为csdn中是集 ...
- 手把手教从零开始在GitHub上使用Hexo搭建博客教程(二)-Hexo参数设置
前言 前文手把手教从零开始在GitHub上使用Hexo搭建博客教程(一)-附GitHub注册及配置介绍了github注册.git相关设置以及hexo基本操作. 本文主要介绍一下hexo的常用参数设置. ...
- 博客迁移至http://www.maxzhang.com,欢迎访问!
博客迁移至http://www.maxzhang.com,欢迎访问!
- 博客迁移至 http://www.loveli.site
对于博客园的Markdow 支持太过...,你懂的, 以后博客迁移至:http://www.loveli.site
- 【博客迁移】hyrepo.com
博客迁移至 www.hyrepo.com
- 把cnblogs变成简书 - cnblogs博客自定义皮肤css样式
吐槽 博客园cnblogs作为老牌的IT技术博客类网站,为广大的开发者提供了非常不错的学习交流平台. 虽然博客内容才是重点,但是如果有赏心悦目的页面不更好吗! cnblogs可以更换博客模板,并且提供 ...
- cnblogs博客申请完毕,以后再这里安家落户
cnblogs博客申请完毕,以后再这里安家落户,之前的博客就不转载了,好好搞技术,安稳过日子.
- 使用自己的域名解析cnblogs博客(CSDN也可以)
本文主要介绍怎样使用自己购买的域名指向cnblogs博客 通常来说技术人员都会创建个自己的技术博客,总结下工作中的问题,经验等等,不过某些博客的访问链接的确是不太容易记忆或者输入,对我们分享造成一定的 ...
随机推荐
- easyui 隔行渐变色属性设置
1.部分JS文件 function getAgencyDealTable(begin,end,regionFlag,agencyId){ $('#reportList').datagrid({ idF ...
- 一个table插件,用于bootstrap开发
最近项目中改用bootstrap,可以给的通用table,写的有点死,id名称是固定的,那一个页面两个table如何做呢? ok,模仿着别人的代码,写了一个,整体代码如下: ; (function(f ...
- Shell学习:grep, sed, awk命令的练习题
http://www.cnblogs.com/chengmo/archive/2013/01/17/2865479.html 文件:datafileSteve Blenheim:238-923-736 ...
- 移植tslib和Qt5.6到三星s5pv210开发板
tslib1.4移植 下载tslib1.4后 1.cp tslib-1.4.tar.bz2 /home/gec 2.tar jxvf tslib-1.4.tar.bz2 3.sudo -s 4.cd ...
- 【Networking】网络编程常见问题汇总
[百度分享]网络编程常见问题总结 串讲(一)网络编程常见问题总结 在网络程序中遇到的一些问题进行了总结, 这里主要针对的是我们常用的TCP socket相关的总结, 可能会存在错误, 有任何问题 ...
- 性能调优的Windows窗体DataGridView控件
性能调优的Windows窗体DataGridView控件 . 净框架4.5 在处理大量数据时, DataGridView 控制可以消耗大量的内存开销,除非你仔细地使用它. 在客户有限的内存,你 ...
- 截短字符串的函数(JS中适用)
function cutShort(str){ if(str.length>15){ str=str.substr(0,15)+"..."; } ...
- Shodan:黑客的物联网搜索引擎
记得看过一个电影.里面的科学家开发了一个超级系统,能够实时监控全部可用摄像头.让逃犯无处遁形. Shodan这个新型的搜索引擎可能会让这个想法变成现实. 和Google这些传统互联网信息搜索引擎不同. ...
- WCF学习笔记之并发与限流
最近一直在学习WCF相关知识:本文章将针对并发与限流知识进行一个梳理,由于很多理论的知识所以做一个简单的记录,为今后回顾做一个记录: 一:并发知识 WCF将服务实例封装在一个称为实例上下文的对象中,并 ...
- Python 遍历dict
遍历dict 由于dict也是一个集合,所以,遍历dict和遍历list类似,都可以通过 for 循环实现. 直接使用for循环可以遍历 dict 的 key: >>> d = { ...