20260211 - 将 typecho 的博客文章下载至本地 - assets.zip
将 typecho 的博客文章下载至本地
如题,这是本人的亲身经历
不废话了,直接开车
走人
正文
下载 typecho_contents 数据库为 SQL 文件
typecho_contents 主要包含一些文章内容、附件等等
所以我们需要下载他

如图是使用 phpmyadmin 来导出 typecho_contents 中的记录
导出后,你会得到一个 SQL 文件
你成功了
删除你的 SQL 文件没用的东西
首先,手动打开你的 SQL 文件,找到这个并把下面这部分的内容给复制出来
--
-- 转存表中的数据 `typecho_contents`
--
INSERT INTO `typecho_contents` (`cid`, `title`, `slug`, `created`, `modified`, `text`, `order`, `authorId`, `template`, `type`, `status`, `password`, `commentsNum`, `allowComment`, `allowPing`, `allowFeed`, `parent`, `views`, `stars`) VALUES
复制这里的东西
--
-- 转储表的索引
--单独把他保存到一个 txt 文件中
然后打开 ./assets/0_clear_nottidy.py,介绍一下,清理 png jpg pdf jpeg 在第二字段所包含的行,其他保留
你需要手动填写两个内容:
input_file_path设置为你的txt文件路径,注意一定要有R,是用来转义的,要用双引号包裹路径output_file_path设置为你的导出后txt文件路径,就是处理后的文件路径,同上
然后使用 python 直接运行,即可完成操作
恭喜你,删除完成,你可以手动浏览一下
从 SQL 文件中分类保存文章至文件夹
打开 ./assets/1_download_md.py,还是简单介绍一下,读取文章名称和时间戳和文章内容,在你所指定的目录下,新建 YYYYMMDD - title 的文件夹,即时间戳对应的年月日加上对应的文章名称,然后在文件夹里面新建 title.md 作为文章的主内容
你需要手动填写:
INPUT_FILE:上一次导出的txt文件路径,同上
然后还是使用 python 直接运行,即可完成操作
警告:导出后的文件将被保存在 C:/Users/<USER_NAME>/ 下你可以手动观察一下,你会发现导出的 md 特别变态,所以接下来,我们就要处理换行符的问题 + 图片资源
保存图像附件和处理换行
打开 ./assets/2_make_image_rn_to_n.py,还是简单介绍一下,从 md 里面读取 ![]() 的格式,将 () 下载保存到当前文件夹的 assets 目录里头,然后将 \\r\\n 替换为 \n(不理解这句话内容的自行上网搜索)
你需要手动填写:
TARGET_DIR:设置上一次导出文章目录的目录(?)download_url:但是你只需要修改我的http://www.fmcraft.top部分,修改为你的下载域名,不要加斜杠!!!
然后,你懂的
然后,你就会发现,换行好了,图片资源也被正确保存在了对应的 assets 目录下
你好牛逼啊!!!
处理开头的小插曲
打开 ./assets/3_kill_markdown.py,还是简单减少一下,删除 <!--markdown--> ,没了
你需要手动填写:
TARGET_DIR:你上一次导出文章的的目录的目录(?)
然后,你懂的
然后,你完成了
此处评论已关闭