序
推荐一下博主自己写的python程序,以md格式下载自己在博客园的随笔原稿,保留分类,标记草稿和非公开的稿件。支持离线图片
区别于其它的爬虫是以访客身份爬取文章阅读页面的html,这个下载器程序是以作者的身份获取原稿内容的
希望能帮助大家拿回自己的数据
这是GitHub项目地址:
以下是readme
Usage
Configuration
运行前需要进行配置:
-
打开浏览器登录博客园,登录时勾选"记住我"
-
登录后浏览器按F12,找到Cookie,拷贝
.Cnblogs.AspNetCore.Cookies
的值到main.py
的COOKIE
中 -
main.py
中dl.CnblogsDownloader
的第二个参数为下载路径
可选的配置:
将随笔中引用的图片一并离线到随笔的文件夹,需要更改main.py
# 将此行
downloader = dl.CnblogsDownloader(COOKIE, "D:\cnblogs")
# 改为
downloader = dl.CnblogsDownloader(COOKIE, "D:\cnblogs", download_img=True)
md中的链接会自动替换
Dependencies
pip install httpx
Start
配置好程序并安装好httpx依赖后,命令行运行:
python main.py
会看到打印的输出:
Features
下载的文件名为随笔标题,分类和标题中的特殊字符\/:*?"<>|
会被空格代替,文件编码为UTF-8
程序会区分你的随笔是否是公开的,是否是草稿状态,并在文件名后追加[非公开]
或[草稿]
程序只能在Windows下运行,未做其他系统适配
如果你在博客园中删除了一篇文章,程序不会删除相应的本地文章
.CnblogsDownloaderFlag.json
中保存着上次运行程序的时间,如果博客园中的文章未更新,那么不会反复下载
一旦程序决定要下载某篇随笔,那么它会覆盖此随笔及其引用的图片
For Developer
博客园公开的api文档:https://api.cnblogs.com/help
但显然不够用,而且要申请api权限,于是自己根据网络通信总结了几个重要的api的文档:cnblogs-apiDoc