搬离简书指南!

JIANSHU

简书是一个简洁、高效的文字创作、分享和阅读平台.简书的编辑器支持Markdown,让你可以专心进行文字创作而不用考虑太多排版工作.当年作者也是因为很喜欢Markdown,而简书的Markdown很漂亮,就加入了简书.

优秀的创作者,可能经常修改自己作品,简书也考虑到了这些,为我们提供了文章离线包,但对于文章的图片只保留了外链,如果电脑无法连网,我们就只能看到纯文本的作品... 对于一个文章含有大量图的创作者,没有图片的作品,观看效果会大打折扣.

为了解决图片离线无法观看的问题,作者用脚本将图片缓存到了本地,很简单!只需四步...

1.登录到简书后台获得自己所有的文章

登录到后台

2.解压获得的压缩包

解压

3.将下面提供的脚本放到.md文件的同级目录

脚本放到.md文件的同级目录

4. 运行脚本

运行脚本

完成后效果

自动创建文件夹为图片分类
自动创建文件夹为图片分类
自动将网络图片链接改为本地图片链接
网络图片链接改为本地图片链接

小结

简书是一个优秀的创作社区,这里不仅有文艺青年,也有程序员,作者也是最近才发现,程序类的创作者是没有签约作者这个选项的... 所以,如果开发者们要往其它平台迁移自己的编程类作品的话,这个脚本可以帮你省很多时间;

热衷于收藏的创作者,可以把自己的简书包留个完整的备份,多年后,看看自己当年的文章,也是一份不错的回忆!

脚本源码(python3环境)

import re
import urllib.request
import urllib.parse
import os
import sys
import time

# 获取当前目录下的文件名列表
def get_files():
    files = os.listdir()
    new_files = list()
    for file in files:
        try:
            new_file = re.match(r".*\.md$", file).group()
            if new_file:
                new_files.append(new_file)
        except Exception as e:
            pass
    return new_files

# 将原文件中的网络图片地址改为本地地址
def inter_to_local(file_name, inter_addr, local_addr):
    with open(file_name+".md", "r") as f:
        content = f.read()
        content = content.replace(inter_addr, local_addr, 1)
    with open (file_name+".md", "w") as f:
        f.write(content)

# 根据提取的url和图片名,下载图片
def core_download(dir_name, image_name,image_addr):
    try:
        time.sleep(2)
        url = image_addr
        user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
        headers = {'User-Agent':user_agent}
        req = urllib.request.Request(url, None, headers)
        image_data = urllib.request.urlopen(req)
        image_data = image_data.read()
        # 打开文件
        with open("./images/"+dir_name+"/"+image_name, "wb+") as f:
            f.write(image_data)
            print("图片%s下载完毕......"%image_name)
            # 将网络图片替换为本地图片
            inter_to_local(dir_name, image_addr, "./images/"+dir_name+"/"+image_name);
    except Exception as erro:
        pass

# 获取文章中图片的url,并下载到本地
def get_urls():
    task_files = get_files()
    try:
        for task_file in task_files:
            # 为单个文件创建单独的文件夹
            task_file_pure = re.match(r"(.*)\.md",task_file).group(1)
            try:
                try:
                    os.mkdir("./images")
                except:
                    pass
                os.mkdir("./images/%s"%task_file_pure)
            except:
                pass

            with open(task_file, "r") as f:
                content = f.read()
            
                one_file_image_names_urls = re.findall(r"!\[(.*?)\]\((.*?)\)", content)
            try:
                for image_name_url in one_file_image_names_urls:
                    # 如果图片没有名字,则按照时间产生的随机字符串取名
                    if image_name_url[0] is None:
                        image_name_url[0] = str(int(time.time()))
                    #获取图片格式
                    image_format = re.match(r".*(\..*?)\?.*", image_name_url[1]).group(1)

                    image_name = image_name_url[0]+image_format
                    image_url = image_name_url[1]
                    try:
                        task_file = re.match(r"(.*)\.md",task_file).group(1)
                    except:
                        pass
                    core_download(task_file,image_name,image_url)
                    
            except Exception as e:
                pass 

    except Exception as e:
        pass



def main():
    get_urls()
    pass

if __name__ == "__main__":
    main()

如果您喜欢python,喜欢故事,请点赞或关注我!您的支持是对作者最大的鼓励!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,064评论 5 466
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,606评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,011评论 0 328
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,550评论 1 269
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,465评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,919评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,428评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,075评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,208评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,185评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,191评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,914评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,482评论 3 302
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,585评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,825评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,194评论 2 344
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,703评论 2 339

推荐阅读更多精彩内容