xChar
·4 months ago

最近有个线下赛,由于是市里第一次举办所以不确定赛场出不出网,想着备点弹药库保证一下发挥。但是我手上所有的资料都来自语雀的加密知识库,之前在朋友圈看到有人可以批量导出,Google找了好久的方法都没什么发现,在Github找到了一个比较不错的项目,可以通过使用Cookie的方法批量下载公开密码访问的知识库,并保存为Markdown,下列附使用教程。
repo:gxr404/yuque-dl

0x01 环境准备

Node.js 18.4 or later

本文基于Windows平台下进行演示,直接使用预购建安装程序安装即可。

0x02 程序使用

安装命令

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 

0x03 开始下载

私有知识库

通过别人私有知识库 分享的链接,需使用-t添加token才能下载

yuque-dl "https://www.yuque.com/yuque/thyzgp" -t "abcd..."

进入Console(控制台)=>选中Application标签卡=>点Storage下的Cookies找到语雀根域=>选中_yuque_session并复制其Value

image-20240721122402112

企业私有服务

没遇到过,po一下官方文档

企业服务有自己的域名(黄色语雀logo),非yuque.com结尾, 如https://yuque.antfin.com/r/zone

这种情况 token的key不唯一, 不一定是为_yuque_session 需用户使用 -k 指定 token的key,-t 指定 token的值。

至于key具体是什么只能靠用户自己在 浏览器Devtools-> Application -> Cookies 里找了🤔

公开密码访问的知识库

public_pwd

⚠️ 公开密码访问的知识库两种情况:

  • 已经登录语雀,访问需要密码的知识库 输入密码后使用_yuque_session这个cookie

    yuque-dl "url" -t "_yuque_session的值"
    

    进入Console(控制台)=>选中Application标签卡=>点Storage下的Cookies找到语雀根域=>选中_yuque_session并复制其Value

    image-20240721123008479

  • 未登录语雀,访问需要密码的知识库 输入密码后需要使用verified_books/verified_docs这个cookie

    yuque-dl "url" -k "verified_books" -t "verified_books的值"
    

进入Console(控制台)=>选中Application标签卡=>点Storage下的Cookies找到语雀根域=>选中verified_books/verified_docs并复制其Value

image-20240721122914944

下载完成后是这个样子的,有些无法下载成功的可以去浏览器里看能否可以访问

image-20240721123752399

需要更新的时候,保持下载的download文件夹内容不变重新跑一下download命令即可

0x04 本地快速预览

yuque-dl提供了一个使用vitepress快速启动一个web服务提供可预览下载的内容的功能

yuque-dl server ./download/知识库/

➜  Local:   http://localhost:5173/
➜  Network: use --host to expose

server

0x05 附言

各大星球整理出来的知识库都是星球主自己知识的结晶,有的要么就是统计历史的文库,要么就是自己打下来的day,无论如何,导出的结果留着自己用就行了,分享出去其实挺不道德的。。

分享一些我搜寻出来的公开知识库:

此文由 Mix Space 同步更新至 xLog
原始链接为 https://de3ay.com/posts/sec/yuque-encrypted-download


Loading comments...