2016-05-30

Hexo仿制Lofter主题

嗯,经过一晚上的琢磨。大概仿制了一个Lofter的主题。感觉挺不错的。但是还有些细节要搞定。


希望能在6月10号前正式搬家。

2016-05-29

Lofter图片搬家

图片已经能够下载了,很好~但是缺一步,那就是把文章中的图片链接换成本地连接。当然不能手动了,用PYTHON来做这件事。

代码大概是这样的。


我的想法是,把所有图片链接全部换成是very9s/lofter/*.png的链接形式。好在图片不是很多。到时候在服务器上就直接在根目录下放个lofter文件夹吧。
看,图片链接已经改了。
/////////////////////////////////////////////////////////////////////////////////////

嗯,搬家差不多可以进行了。现在只要再在一些个别的细节做一些调整就可以了。整体框架已完成。

2016-05-27

Python下载Lofter图片

现在文章已经能够迁移到Hexo了。但是文章里面的图片链接依旧是LOFTER上的,所以也要把图片搬出来。

1-下载图片

在原来的程序基础上添加下载图片的代码。

很直接,很单纯。。。直接用urlopen然后write。可是才下载一张就被服务器无情地拒绝了。

2-伪装

我就这么裸奔的跑过去,当然被拒绝了。

查找python的官方文档,发现一句话。解决办法就在这里了。

headers should be a dictionary, and will be treated as if add_header() was called with each key and value as arguments. This is often used to “spoof” the User-Agent header, which is used by a browser to identify itself – some HTTP servers only allow requests coming from common browsers as opposed to scripts. For example, Mozilla Firefox may identify itself as “Mozilla/5.0 (X11; U; Linux i686) Gecko/20071127 Firefox/2.0.0.11”, while urllib‘s default user agent string is “Python-urllib/2.6” (on Python 2.6).


——

《urllib.request》

所以我要伪装成浏览器。所以修改代码:

通过添加header来实现


3-大功告成

终于可以快速的下载图片了。图片搬家问题也解决了一大半了。


oh~对了,关于解析博文,由于XML中保持的是HTML数据,所以博文中图片的链接,我是用Beautiful Soup 4.2.0来解析的。

下一步,就是修改XML文件,把博文中的图片链接换成自己的图片链接。

嗯~剩下的下次再来吧。

Lofter搬家Hexo前期工作

搬家的工作,慢慢进行着。不知不觉搬家的主体实验已经做了一大半了。基本上验证了搬家方案的可行性。目前已经成功实验搬到自己的centos7虚拟机上。

1-python编程

文章那么多,手动搬家时不可能的了。所以我用python编程,帮我解析Lofter的XML文件,自动生成文章。


目前只是实验性,功能没有完全达到目标。还有实现将Lofter文章中的图片下载到本地上。否则出现这种情况:

生成的文章


2-PSCP上传

用PSCP上传到虚拟机服务器上


嗯,在虚拟机上怎么乱码了?无所谓了,反正文件名也无关紧要
3-Hexo重新生成
访问服务器,发现确实多了多篇文章,但是没有全。只有几篇。还有文章出现乱码。
4-Hexo文章乱码解决

配置 _config.yml


重新生成。。。。。
啊哟,出错了?什么情况?找了有一段时间。原来,官方文档有说冒号之后要有空格。

重新修改配置 _config.yml

重新生成。。。。。


OK没问题。可是乱码的问题还是存在。再看文章编码,原理是文章编码的问题。

于是修改python程序,用UTF-8编码方式保存文章


于是,乱码问题解决了。 5-解决文章不全问题

文章不全是因为中文的文件名,虚拟机无法识别。所以把文件名都改成数字就可以读取所有文章了。

OK了,这些全部都能显示了


////////////////////////////////////////////////////////////////

嗯,差不多了。有时间再补全其他功能吧。

2016-05-25

Putty windows上传文件至 linux 虚拟机

1-下载PSCP
  • PSCP (an SCP client, i.e. command-line secure file copy)

2-在CMD中使用PSCP

输入命令,格式是:

pscp [options] source [source…] [user@]host:target

一句命令,简单上传




2016-05-24

解决XML error Input is not prope

为了搬家,打算用Python写一个解释LOFTER XML的程序,出现如下错误


这说明XML有问题。因为如果XML有错,解释器就会不工作 W3C如是说

果不其然,放到chrome解释,就报错

This page contains the following errors:

error on line 840 at column 23: Input is not proper UTF-8, indicate encoding !Bytes: 0x0B 0xE5 0x8C 0x85

Below is a rendering of the page up to the first error.


查了下XML文件,840行23位置是CDATA区段,CDATA语法也没有问题呀。
网上搜下相关资料。一个帖子引起了我的注意: Invalid Character inside CDATA ,该帖子好像是说CDATA里面的文本并不是任何字符都可以的。如果超出UTF-8的字符集就会出错。英文太烂了,看不太懂。。。

而且有意思的是,这个帖子是14年前的。真有历史感

//////////////////////////////////////////////////////////////////////////

这说明不是语法问题,而是CDATA里面的内容有问题。

果真,在CDATA段里面,发现了2个不知道是什么的符号


把他们删了。现在就没有问题了。
python可以愉快的进行了。

这是搬家的一个小插曲。解决了小问题,却很开心。还有今天论文自己查重过了。paperpass浪费了4次,后知后觉的发现其实它根本就不准。直接交给学校去知网查吧。





Centos7搭建Hexo全过程

在搭建好Nginx后,安装Hexo过程相比就简单很多了。完全跟着官网教程来。

1-安装Git

yum install git-core

2-安装Node.js
安装Node.js的最简单方式是用 nvm

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.1/install.sh | bash


然后就是按照Node.js

nvm install 4

3-安装Hexo

最后一步npm install -g hexo-cli


4-建站

现在一切都准备好了,可以开始建站了。

$ hexo init <folder>


$ cd <folder>

$ npm install

最后的最后就是生成网页了



然后就是把pulic下的网页复制到Nginx的网站root目录下。默认是/usr/share/nginx/html/

再然后就可以访问了。




2016-05-22

Centos 安装Nginx全过程

1-首先安装CentOS 7 EPEL repository

yum install epel-release


2-然后就可以简单的安装Nginx了

yum install nginx


3-运行Nginx

systemctl start nginx


测试下服务
原来是防火墙没有设置 4-设置防火墙

firewall-cmd --permanent --zone=public --add-service=http


重启防火墙

firewall-cmd --reload

再试试


5-开机自动启动Nginx

systemctl enable nginx

6-更新nginx

nginx -v查看下当前的版本,发现是Legacy versions

所以就有必要更新下。

官方文档是这么说的:

所以按部就班

最后更新nginx

yum update nginx


看,已经升级为最新的nginx了

Ubuntu SSR setting

使用electron-ssr客户端 https://github.com/shadowsocksrr/electron-ssr 设置proxy