qcy教你下载你在CSDN上写过的文章

前言


现在是2017年4月27日0:20:38。

异常兴奋…

事情是这样的。

因为在高中(2009年)开运动会的时候,我们录了好多像。但是后来我重装系统的时候,我自己确实是个电脑盲(尽管那个时候还是个网管,负责开关教室里的投影仪。同时,那个时候也立志考北京航空航天大学的计算机科学与技术系。然而本科没考上,研究生也没去……。唉,BUAA啊~~~~。而且我的专业也越来越不是计算机,先是通信工程,然后是光纤通信。。。对,光纤通信!就是那个办宽带的人手里拿的光纤。唉……),一不小心把电脑里好多东西都删了!

从此我意识到备份数据的重要性!!!

现在我把很多有意思的东西都放到了CSDN上,尤其是代码,希望这个网站不要挂掉……

但是我还是很不放心!于是准备把我写在CSDN上的东西又全部搬下来。至少存在本地、移动硬盘、微软的oneDrive、百度云上……

就是这么有强迫症。(我是金牛座……)


今晚已经知道怎么搞了。虽然很山寨。

别人明明有做好的xxxx库,可以直接调用解析html的标签……。没事,以后再学高级的用法。

明天起床完善这篇文章,就叫做“qcy教你下载你在CSDN上写过的文章”。


=======================================================


开始备份


下午去广州,上午先写一部分。记得上次去广州的那天上午,还在抓紧时间写用matlab模拟“世界大战”。总是这么拼……

关于备份我的csdn文章,我发现这似乎不是一件很容易的事。


基本想法


1. 把自己的文章的标题和url得到。

2. 用一个可以下载网页的工具下载。


事前准备


首先,需要准备一些工具。

1. 一个离线下载网站的工具Teleport Ultra。

2. 然后就是自己写一些python代码,得到自己的文章的url和标题。


因为目前来讲,我的csdn上的文章并不多,只有99篇,文章列表的也就2页的事,所以就没有单独写代码去保存文章列表的源代码了。


开始行动


1. 保存自己的文章列表的html源代码。
1.1 来到自己blog的首页。
1.2 切换至目录视图。
qcy教你下载你在CSDN上写过的文章_第1张图片

qcy教你下载你在CSDN上写过的文章_第2张图片

1.3  鼠标右键,点击查看源代码

qcy教你下载你在CSDN上写过的文章_第3张图片


1.4 保存源代码
qcy教你下载你在CSDN上写过的文章_第4张图片

保存到本地,我只有两页。
qcy教你下载你在CSDN上写过的文章_第5张图片

2.  写一段python代码,假装是在做一个网页爬虫。
把自己的文章url和title都保存下来。

比较烦的2件事。
2.1 网页上是一个换行符,但是不会显示出来。然而匹配的模式字符串里面要加上“\n”
qcy教你下载你在CSDN上写过的文章_第6张图片
2.2 这正则表达式真的不好写!毕竟我太不熟了。
想匹配 abc xxxx abc,可能要用 ([\w\W]+?)这种东西。

import re
import pandas as pd

art_url = []
art_titles = []

art_dic = {}

for i in range(1,3):
        
    path = 'view-source_blog.csdn.net_qcyfred_article_list_%d.html'%i
    file_object = open(path,encoding= 'utf-8')
    
    try:
        all_the_text = file_object.read( )
        p1 = "/qcyfred/article/details/\d{1,}"
        pattern1 = re.compile(p1)
        
        ids = pattern1.findall(all_the_text)
        ids = list(set(ids))
        
        for i in range(len(ids)):
            s1 = ids[i]
    
            p2 = s1+'">\n'
            pattern2 = re.compile(p2)
            list2 = pattern2.findall(all_the_text)
            
            if len(list2)==0:
                continue
            s2 = list2[0]
            p4 = s2 + '([\w\W]+?)' +'\n        '
            
            pattern4 = re.compile(p4)
            res4 = pattern4.findall(all_the_text)
            
            res = res4[0]
            res = res.replace(' ','')
            
            print(res)
            
            art_dic[s1] = res
            art_url.append('http://blog.csdn.net'+s1)
            art_titles.append(res)
                   
    finally:
         file_object.close()

df1 = pd.DataFrame(art_url,columns=['url'])
df2 = pd.DataFrame(art_titles,columns=['title'])
df = pd.concat([df1,df2],axis=1)
df.to_excel('article.xlsx')

至于中间,还有一些东西要这样写。
qcy教你下载你在CSDN上写过的文章_第7张图片
这是从那两个html的网页源代码里面看出来的。
网页源代码就是这样子。。。
qcy教你下载你在CSDN上写过的文章_第8张图片

过程还是很坎坷。
不过最后我还是存下来了。
qcy教你下载你在CSDN上写过的文章_第9张图片

3. 打开teleport ultra软件,拿着这些url去下载
qcy教你下载你在CSDN上写过的文章_第10张图片

qcy教你下载你在CSDN上写过的文章_第11张图片

把url粘贴进去,点开始下载就好了。
搞定。

你可能感兴趣的:(计算机应用基础)