终于可以长出一口气了

事故

今天博客照常更新,看起来风平浪静,然后其实我为了挽救博客,已经耗费了一天的时间和精力。

今天打开硬盘一看,博客所有的源文件全部丢失了。当时我还比较放松,因为这根本不可能阿。然而我再三检查之下,发现确实不见了。一个都没有了,就像被人故意删除的一样。坑爹啊,我没有备份过这个东西,这可怎么办呀?

心情

心里十分的烦躁,这下麻烦了啊。截至目前一共有70多篇博客,是几年来的记录,这部分丢失了损失无法承受。看来这下得下一番功夫去挽救了。其实此刻我并不慌张,因为github里还有之前发布出去的html文件。我只需要对他进行格式整理即可。 然而70多篇,整理起来耗时费力,实在非我所愿。

方案

大概10年前做网站的时候,流行采集,原理就是用软件来爬取网站的内容,然后再整理发布到自己的网站上。那我今天这种情况也只好如此了。

爬数据

一番查看,找到的目的列表就是归档页,先从归档页获获取所有的博文网址,放到一个数组里,然后再分别抓取每篇博文的内容。 一个技术大坑是,我博文的网址是中文,中文的网址必须转义才成。

数据提取

从爬到的数据中提取到自己想要的对象,这着实是一门技术活,我也做过很多次类似的事情。不同以往的操作字符串或者正则表达式,此处我直接操作dom树,通过dom节点直接定位到关键数据并提取。

对象转换

抓取到标题、发表日期、标签、分类还要转为yaml格式的font matter,放在源文件的头部。
其中包含数组和对象的转换。

内容转换

抓取到的数据中含有编译后的信息,需要去除或修正,同样操作dom树即可。修正完毕后再转为markdown

保存

最后用utf-8的格式输出成文件即可。

结果

最后终于顺利的把数据全部抓了回来,现在看到的即是repost的结果。

源码

此项目的源码我会整理后开源在github上,届时另外开文讲述。

版权说明

本页地址为 https://post.zz173.com/detail/7kEh3FslNXyU-bAleCrFDQ.html,本文作者为落月
本文采用 署名-相同方式共享 3.0 中国大陆许可协议 ,分享、演绎需署名且使用相同方式共享。转载请务必保留本页网址和作者信息,否则即为侵权。

– EOF –