除两个文件导出命令外,所有操作命令都支持 --json:
douban weekly --json
douban book info 三体 --json
douban user USER_ID --wish --json
douban whoami --json--json将命令结果写到 stdout;失败时向 stderr 写结构化 JSON,并返回非零退出码。错误码包括INVALID_ARGUMENT、NOT_FOUND、AMBIGUOUS、AUTH_REQUIRED、RATE_LIMITED、HTTP_ERROR、NETWORK_ERROR等。AMBIGUOUS:按名称匹配到多个版本或同名作品。error.matches列出候选项,请改用其中的 ID 或 ISBN 再查;不会自动使用第一条。- 结果可能不完整时,提示写到 stderr(以
⚠️开头),stdout 的 JSON 保持可解析。 - 简单列表(如
now、top250、search)输出数组;带附加信息的列表输出对象,条目在items里:trending和weekly附榜单名、更新节奏(schedule)和本期日期(updated_at),comments、reviews附total。 export --format json与book export --format json是文件格式选项,不会把 JSON 打到 stdout。- 需要稳定脚本行为时,以具体命令的
--help和 JSON 字段为准,不要解析人类可读表格。 - 在终端里,列表中的 ID 是可点击的链接(终端支持时);
--json、管道和重定向的输出始终是纯文本。
以下命令在交互终端中支持翻页:
- 电影:
top250、comments、reviews、user、me。 - 图书:
book top250、book comments、book reviews、book notes、book user、book me。
按回车或 n 下一页,p 上一页,g <页码> 跳转,q 退出。已经访问过的页面会在本次会话中复用。
使用 --json、管道或重定向时不会进入交互模式,只返回 --page 指定的页面;文本输出末尾会提示下一页的 --page,或说明已到最后一页。search、book search 和 list 使用 --start 偏移量,不使用交互分页。
先查看根命令或子命令帮助:
douban --help
douban book --help
douban book comments --help需要排查网络、解析或登录问题时,可以临时启用调试日志:
DOUBAN_DEBUG=1 douban book info 三体- 只读请求失败会有限重试;页面结构无法识别时直接报错,不返回空列表。
RATE_LIMITED:被限流。登录后搜索不容易被限,或者稍后再试。- 安全验证(
HTTP_ERROR,提示需要验证):在浏览器里打开豆瓣完成验证,并暂停一段时间再用。 - 服务端要求的等待时间超过 CLI 的自动等待上限时,CLI 会直接停止,不会提前重试。
douban doctor --online可以一次检查网络、搜索限流和登录状态。