最近有个线下赛,由于是市里第一次举办所以不确定赛场出不出网,想着备点弹药库保证一下发挥。但是我手上所有的资料都来自语雀的加密知识库,之前在朋友圈看到有人可以批量导出,Google找了好久的方法都没什么发现,在Github找到了一个比较不错的项目,可以通过使用Cookie的方法批量下载公开密码访问的知识库,并保存为Markdown,下列附使用教程。
repo:gxr404/yuque-dl
Node.js 18.4 or later
本文基于Windows平台下进行演示,直接使用预购建安装程序安装即可。
安装命令
npm i -g yuque-dl
使用命令
$ yuque-dl --help
Usage:
$ yuque-dl <url>
Commands:
<url> 语雀知识库url
server <serverPath> 启动web服务
For more info, run any command with the `--help` flag:
$ yuque-dl --help
$ yuque-dl server --help
Options:
-d, --dist-dir <dir> 下载的目录 eg: -d download (default: download)
-i, --ignore-img 忽略图片不下载 (default: false)
-k, --key <key> 语雀的cookie key, 默认是 "_yuque_session", 在某些企业版本中 key 不一样
-t, --token <token> 语雀的cookie key 对应的值
--toc 是否输出文档toc目录 (default: false)
-h, --help Display this message
-v, --version Display version number
通过别人私有知识库 分享的链接,需使用
-t
添加token才能下载yuque-dl "https://www.yuque.com/yuque/thyzgp" -t "abcd..."
进入Console(控制台)
=>选中Application标签卡
=>点Storage下的Cookies找到语雀根域
=>选中_yuque_session并复制其Value
没遇到过,po一下官方文档
企业服务有自己的域名(黄色语雀logo),非
yuque.com
结尾, 如https://yuque.antfin.com/r/zone
这种情况 token的key不唯一, 不一定是为
_yuque_session
需用户使用-k
指定 token的key,-t
指定 token的值。至于
key
具体是什么只能靠用户自己在浏览器Devtools-> Application -> Cookies
里找了🤔
⚠️ 公开密码访问的知识库两种情况:
已经登录语雀,访问需要密码的知识库 输入密码后使用_yuque_session
这个cookie
yuque-dl "url" -t "_yuque_session的值"
进入Console(控制台)
=>选中Application标签卡
=>点Storage下的Cookies找到语雀根域
=>选中_yuque_session并复制其Value
未登录语雀,访问需要密码的知识库 输入密码后需要使用verified_books
/verified_docs
这个cookie
yuque-dl "url" -k "verified_books" -t "verified_books的值"
进入Console(控制台)
=>选中Application标签卡
=>点Storage下的Cookies找到语雀根域
=>选中verified_books
/verified_docs并复制其Value
下载完成后是这个样子的,有些无法下载成功的可以去浏览器里看能否可以访问
需要更新的时候,保持下载的download文件夹内容不变重新跑一下download命令即可
yuque-dl提供了一个使用vitepress快速启动一个web服务提供可预览下载的内容
的功能
yuque-dl server ./download/知识库/
➜ Local: http://localhost:5173/
➜ Network: use --host to expose
各大星球整理出来的知识库都是星球主自己知识的结晶,有的要么就是统计历史的文库,要么就是自己打下来的day,无论如何,导出的结果留着自己用就行了,分享出去其实挺不道德的。。
分享一些我搜寻出来的公开知识库:
此文由 Mix Space 同步更新至 xLog
原始链接为 https://de3ay.com/posts/sec/yuque-encrypted-download