首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >python+shell 备份 csdn 博客文章

python+shell 备份 csdn 博客文章

作者头像
FungLeo
发布2019-05-27 08:53:11
发布2019-05-27 08:53:11
4780
举报

优化获取 ID PYTHON 脚本

代码语言:javascript
复制
#!/usr/bin/env python3
# -*- coding: UTF-8 -*-
import  urllib.request
from bs4 import BeautifulSoup
import os

def getid (x):
    url = r'https://blog.csdn.net/fungleo/article/list/'+str(x)
    res = urllib.request.urlopen(url)
    html = res.read().decode('utf-8')
    soup = BeautifulSoup(html,'html.parser')
    links = soup.find_all('div', 'article-item-box')

    for i in links:
        idStr = i['data-articleid']
        timeStr = i.find_all('span', 'date')[0].string
        outStr = '("' + idStr + '", "' + timeStr + '"),\n'
        with open('idtime.txt', 'a+') as f:
            f.write(outStr)
            f.close()

def do ():
    for i in range(14):
        getid(i)

do()

这里,我们将文章的 ID 和日期,组成一个元组,用逗号分隔。然后我们可以手工加上一个方括号,组成一个由元组构成的数组,方便我们后面使用。

下载 JSON 文件

由于我已经下载过 json 文件,这里无需重复下载。看官可以去上一篇博文查看如何下载 json 文件。

不过由于我们的 idtime.txt 文件中,不仅仅是包含 ID 还包含时间,所以,上一篇博文的脚本需要调整一下:

代码语言:javascript
复制
for i in $(cat idtime.txt | cut -f 2 -d '"'); do sh t.sh $i > $i.json; sleep 1; done

主要的调整,就是用 cut 工具,将 ID 给提取出来而已。

下载好所有的 json 文件后,创建一个 json 文件夹,然后把这些文件全部给放进去。

优化 JSON 转 MARKDOWN 脚本

首先,我们手工修改一下 idtime.txt 文件,整体缩进一格,修改为如下格式

代码语言:javascript
复制
TIME = [
    #__第二行开始为原有内容,并缩进一行__
]

然后将文件重命名为 timeid.py

好,然后就是下面的脚本。

代码语言:javascript
复制
#!/usr/bin/env python3
# -*- coding: UTF-8 -*-
import os
import json
import timeid

sourceDir = './json'

def getDate(name):
    for i in timeid.TIME:
        if i[0] in name:
            return i[1]
    return '2018-06-29 00:00:00'
def readJson (filPath):
    f = open(filPath, encoding='utf-8')
    data = json.load(f)

    date = getDate(f.name)
    title = data['data']['title']
    saveTitle = title.replace('/', ':')
    content = data['data']['markdowncontent']
    tags = data['data']['tags'].split(',')

    if content:
        mdFile = open('''./markdown/{title}.md'''.format(title=saveTitle), 'a+')
        mdFile.write('title: ' + title + '\n')
        mdFile.write('date: ' + date + ' +0800\n')
        mdFile.write('update: ' + date + ' +0800\n')
        mdFile.write('author: fungleo\n')
        mdFile.write('tags:\n')
        for tag in tags:
            mdFile.write('    -' + tag + '\n')

        mdFile.write('---\n\n')
        mdFile.write(content)



def findJson ():
    for fil in os.listdir(sourceDir):
        filPath = os.path.join(sourceDir, fil)
        readJson(filPath)

findJson()

再跑一边这个脚本,就将所有的博客文章全部生成在了 markdown 这个文件夹下面了。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018年06月29日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 优化获取 ID PYTHON 脚本
  • 下载 JSON 文件
  • 优化 JSON 转 MARKDOWN 脚本
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档