Files
catbus/docs/guide/quick-start.md

4.5 KiB
Raw Permalink Blame History

快速上手

从安装到导出第一批数据,大约 5 分钟。每一步的细节见文末链接的专题文档。

1. 安装

需要 Node ^22.22.2 || ^24.15.0 || >=26.0.0。不需要 Python、编译器或其他系统依赖,支持 Windows、macOS、Linux 的 x64 与 arm64(Linux 含 glibc 和 musl)。

从 npm 安装:

npm i -g catbus-cli

模型包 @cv-cat/catbus-assets-jd、@cv-cat/catbus-assets-ocr 会作为依赖一起装上,装完即可离线使用。

从源码安装(想改代码或跟进 master 时):

git clone https://github.com/cv-cat/catbus.git
cd catbus
npm ci
npm run assets:jd     # 取回京东验证码模型(约 81 MB)
npm run assets:ocr    # 取回验证码 OCR 模型(约 34 MB,B 站极验点选在用)
npm run build
npm link              # 把 catbus 命令链接到全局

两个模型包的模型文件不进 git,npm ci 之后要用上面两条命令取回,否则 catbus doctor 会报模型文件缺失。只用不到京东和 B 站验证码的平台时可以先跳过,但建议都装上。

2. 检查环境

catbus version
catbus doctor

doctor 逐项检查 Node 版本、~/.catbus 的权限、签名 vm、HTTP 库、canvas、onnx 和两个模型包,每项输出 {name, ok, message}。有一项不通过时退出码为 1,看 message 里的提示处理。

catbus doctor | jq -r '.data[] | select(.ok | not) | "\(.name): \(.message)"'

3. 登录

web 端不登录几乎看不到内容,所以除 auth 以外的命令都需要先登录。以 B 站为例:

catbus bilibili auth login

二维码画在终端(stderr)里,同时存了一张 PNG(路径在提示里)。用 B 站 App 扫码、在手机上确认即可。

各平台支持的登录方式不同:

登录方式 平台
扫码(默认) xhs、douyin、bilibili、kuaishou、xianyu、jd
只能导入浏览器 cookie tiktok、weibo、taobao、x

只能导入 cookie 的平台:

catbus weibo auth login --cookie "<从浏览器复制的完整 Cookie>"

cookie 要从 DevTools → Network 里某个请求的请求头复制,document.cookie 拿不到 HttpOnly 的关键 cookie。详见 login.md。

确认登录态:

catbus bilibili auth status

4. 第一条查询

catbus bilibili item get BV1xx411c7mD

stdout 上是一个 JSON 信封,data 是归一化的 Item:

{
  "ok": true,
  "platform": "bilibili",
  "endpoint": "web",
  "resource": "item",
  "action": "get",
  "account": "default",
  "data": { "id": "BV1xx411c7mD", "kind": "video", "url": "https://www.bilibili.com/video/BV1xx411c7mD", "title": "...", "...": "..." },
  "page": null,
  "error": null
}

命令的规律是 catbus <platform> <resource> <action>,所有平台同一套词:笔记、视频、商品都叫 item,搜索都叫 search。

catbus bilibili item search 猫
catbus bilibili user get me
catbus bilibili comment list BV1xx411c7mD

不知道某个平台支持什么时:

catbus bilibili --help              # 该平台的全部命令,带 ○ 的是规划中
catbus bilibili item search --help  # 参数、选项、筛选取值
catbus platforms bilibili           # 同样的信息,JSON 格式

全部平台的能力矩阵见 capabilities.md。

5. 分页

列表命令默认只取一页,信封里带 page:

"page": { "cursor": "2", "has_more": true }
catbus bilibili item search 猫 --limit 100          # 自动翻页,取满 100 条
catbus bilibili item search 猫 --cursor 2           # 从上次的 page.cursor 继续
catbus bilibili user items me --all                 # 翻到没有更多

翻页间隔由 catbus 按平台控制,不需要自己加延时。

6. 导出 jsonl

数据量大时用 -o jsonl:stdout 每行一条数据,边翻页边输出;结束时 stderr 最后一行是摘要信封(带 page 和 error)。

catbus bilibili item search 猫 --limit 500 -o jsonl > items.jsonl 2> run.log
wc -l items.jsonl
tail -n 1 run.log | jq '.page'           # 下一页的游标
jq -r '[.id, .title, .stats.views] | @tsv' items.jsonl

下一步

  • login.md:各平台登录方式、cookie 导入、多账号、子站点
  • output.md:信封、归一化类型、分页、退出码与错误处理
  • configuration.md:代理、超时、数据目录
  • faq.md:常见问题