1 Star 0 Fork 1

云牧青 / cnblogs-blogger-downloader

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
readme.md 4.49 KB
一键复制 编辑 原始数据 按行查看 历史
Charles 提交于 2022-03-26 14:43 . perf: optimize code


本程序意在让博客园作者拿回属于自己的数据。程序会以博客园的随笔分类来建立文件夹并下载相应的随笔原稿件,文章格式为md格式,同时支持离线文章中引用的图片

博客园官方有备份功能,但是下载的文件是一个xml,不易于阅读及分离文章

Table of Contents

Usage

Configuration

运行前需要配置config.ini

  1. 修改config.ini.example文件名为config.ini
  2. 打开浏览器登录博客园,登录时勾选"记住我"
  3. 登录后浏览器按F12,找到Cookie,拷贝.Cnblogs.AspNetCore.Cookies的值到config.ini
  4. 其余选项按需填写,文件需以UTF-8编码保存

开启离线后,随笔中的图片链接会被替换自动为本地图片的链接

Dependencies

pip install httpx

Start

配置好程序并安装好httpx依赖后,命令行运行:

python main.py

会看到打印的输出:

example

平时科学上网的话运行时需关闭全局代理,否则http连接错误

Features

下载的文件名为随笔标题,分类和标题中的特殊字符\/:*?"<>|会被空格代替,文件编码为UTF-8

程序会区分你的随笔是否是公开的,是否是草稿状态,并在文件名后追加[非公开][草稿]

程序只能在Windows下运行,未做其他系统适配

如果你在博客园中删除了一篇文章,程序不会删除相应的本地文章

.CnblogsDownloaderFlag.json中保存着上次运行程序的时间,如果博客园中的文章未更新,那么不会反复下载

一旦程序决定要下载某篇随笔,那么它会覆盖此随笔及其引用的图片

代码块中的图片也会被下载,只要它的链接是有效的,比如你的随笔中有下列内容

假如这是你的随笔原稿
```
<img src="https://github.com/Charles94jp/cnblogs-blogger-downloader/blob/master/img/logo.png?raw=true">
```
那么上面代码块里的图片也会被下载

For Developer

博客园公开的api文档:https://api.cnblogs.com/help

但显然不够用,而且要申请api权限,于是自己根据网络通信总结了几个重要的api的文档:cnblogs-apiDoc

项目目录结构

.

├── docs                                   项目API文档,GitHub Pages
├── img                                    readme文档图片	
├── lib                      
│    ├── cnblogs-apiDoc.md                     博客园接口文档
│    └── cnblogs_api.py                        博客园http接口库
├── sphinx                                 构建项目API文档
│     ├── source
│     │     ├── _static
│     │     ├── _templates
│     │     ├── lib
│     │     ├── cnblogs_downloader.rst
│     │     ├── conf.py                            sphinx配置文件
│     │     ├── favicon.ico
│     │     ├── index.rst
│     │     └── main.rst
│     ├── Makefile
│     └── make.bat
├── LICENSE                                项目开源许可证
├── cnblogs_downloader.py                  程序主要逻辑实现
├── config.ini.example                     配置文件示例
├── main.py                                程序入口
└── readme.md                              自述文件

Document

本项目API文档:Document

根据代码文档注释构建API文档:

pip install sphinx sphinx-rtd-theme
sphinx-build.exe -b html .\sphinx\source\ docs

注意docs/lib/cnblogs-apiDoc.html typora.cssdocs/.nojekyll是手动添加进去的

本项目的开源协议为:GPL-3.0 License

马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Python
1
https://gitee.com/Charles94jp/cnblogs-blogger-downloader.git
git@gitee.com:Charles94jp/cnblogs-blogger-downloader.git
Charles94jp
cnblogs-blogger-downloader
cnblogs-blogger-downloader
master

搜索帮助

344bd9b3 5694891 D2dac590 5694891