Douban Sync

📚 豆瓣收藏备份与RSS同步工具

豆瓣书影音游收藏导出工具,支持全量爬取与RSS增量同步,输出Obsidian兼容CSV格式,便于本地化数据管理。

收藏
6.7k
安装
1.7k
版本
0.1.6
CLS 安全性认证2026-08-05
点击查看完整报告 >

使用说明

核心用法

Douban Sync 是一款专注于豆瓣用户数据导出的本地化工具,支持书籍、影视、音乐、游戏四大类别的收藏记录导出。工具提供两种工作模式:

1. 全量导出(首次使用)
通过浏览器自动化工具抓取用户完整的收藏历史。用户需保持豆瓣登录状态,工具按分类遍历所有分页数据(每页30条),自动处理「读过/在读/想读」等状态分类。技术实现支持三种方案:纯HTTP请求(可能触发限流)、Puppeteer CDP浏览器自动化,以及浏览器控制台脚本手动提取。

2. 增量同步(日常维护)
基于RSS Feed实现免登录增量更新,适合配置定时任务(如cron每日执行),持续同步新增收藏记录。

输出特性

  • 生成四份独立CSV文件,字段包含标题、URL、日期、评分、状态、短评
  • 以豆瓣URL为唯一标识自动去重,支持重复运行
  • 默认输出至 ~/douban-sync/{user_id}/ 目录,兼容Obsidian等知识管理工具

显著优点

  • 数据主权归属:突破平台封闭,将个人积累的书影音记录完整导出本地,避免服务变动导致数据丢失
  • 双模式设计:全量导出解决历史数据迁移,RSS增量实现低维护成本持续同步
  • 格式友好:CSV通用格式配合标准化字段,可直接导入Notion、Obsidian、Excel等工具二次分析
  • 合规抓取:遵循豆瓣公开页面结构,内置2-3秒请求间隔与30秒重试机制,降低封禁风险

潜在局限

  • 依赖登录态:全量导出需人工保持浏览器登录,无法完全无人值守
  • 反爬对抗:纯HTTP模式易受 rate limit 影响,需降级至浏览器自动化方案
  • 内容完整性:短评内容需用户公开可见,私密标记内容无法抓取;部分下架条目可能导致分页数据缺失
  • 无API兜底:基于页面结构解析,若豆瓣改版需维护选择器

适合人群

  • 豆瓣十年以上老用户,希望备份海量书影音标记数据
  • Obsidian/Notion 用户,想将豆瓣记录接入个人知识库
  • 数据控,希望对观影、阅读历史进行自定义统计与可视化
  • 对平台依赖有危机意识,追求数据可移植性的用户

常规风险

  • 账号安全:全量导出模式需登录凭证参与爬取,虽仅在本地浏览器执行,仍建议配合独立小号或检查脚本来源
  • IP/账号限制:频繁请求可能触发豆瓣反爬机制,导致临时访问限制
  • 数据一致性:RSS同步存在小时级延迟,非实时同步方案

安全解读

核心用法

Douban Sync 是一款专注于豆瓣用户收藏数据管理的自动化工具,提供两种互补的工作模式:

全量导出模式:首次使用时,通过浏览器工具或 HTTP 脚本抓取豆瓣用户的完整收藏记录。支持书籍(读过/在读/想读)、影视(看过/在看/想看)、音乐(听过/在听/想听)、游戏(玩过/在玩/想玩)四大类别。脚本采用分页机制(每页30条),自动识别"下一页"按钮判断终止条件,并内置 2-3 秒请求间隔的速率限制策略,遭遇封禁时自动等待 30 秒重试。

增量同步模式:日常通过 RSS 订阅源实现免登录自动同步。用户仅需配置 DOUBAN_USER 环境变量,即可每日自动拉取最新动态,推荐配合 cron 定时任务实现无人值守的数据同步。

输出结果为 Obsidian 兼容的 CSV 格式,按类别分文件存储,包含标题、链接、日期、评分、状态、评论六列,并自动基于豆瓣 URL 进行去重,支持多次安全运行。

显著优点

1. 零依赖架构:全程使用 Node.js 内置模块(fs, path, https, http),无第三方 npm 包依赖,彻底消除供应链攻击风险
2. 数据主权保障:所有数据本地存储(默认 ~/douban-sync),不上传任何外部服务器,符合 GDPR 数据最小化原则

3. 灵活双模式设计:全量导出适合历史数据迁移,RSS 增量同步适合日常更新,两者结合实现完整的数据管理闭环

4. 良好的防御性编程:DOUBAN_USER 环境变量经正则验证(^[A-Za-z0-9._-]+$),有效防御路径遍历和注入攻击

5. Obsidian 原生兼容:CSV 格式可直接导入 Obsidian 等知识管理工具,便于构建个人阅读/观影数据库

潜在缺点与局限性

1. 依赖豆瓣页面结构:HTML 解析逻辑(parseListPage, parseGamePage 等)与豆瓣前端绑定,页面改版可能导致解析失效
2. 反爬机制应对有限:虽内置基础速率限制,但豆瓣的反爬策略可能动态升级,极端情况下仍可能触发账号限制

3. 无图形界面:纯命令行工具,对非技术用户存在一定使用门槛

4. 游戏类别支持受限:游戏数据需特殊解析逻辑(parseGamePage),且豆瓣游戏库收录完整性不如书影音

5. T3 来源维护风险:个人开发者维护,更新频率和长期支持存在不确定性

适合的目标群体

  • 数字游民与知识管理爱好者:希望将豆瓣收藏整合至 Obsidian/Notion 等个人知识库的用户
  • 数据归档意识强的用户:担忧平台数据丢失,希望建立本地备份的豆瓣重度用户
  • 开发者与技术编辑:需要结构化数据进行分析、可视化或内容二次创作的技术人群
  • minimalist 践行者:偏好本地优先、避免云服务的数据管理理念实践者

使用风险说明

1. 豆瓣服务可用性风险:该 Skill 完全依赖豆瓣官方平台的可访问性,若豆瓣调整公开数据策略或关闭 RSS 服务,功能将受影响
2. 页面结构变更风险:豆瓣前端改版可能导致解析脚本失效,需关注社区更新

3. 账号安全风险:频繁爬取虽经速率限制,但仍存在触发豆瓣反爬机制的理论可能,建议控制同步频率

4. 无版本锁定机制:缺乏 package.json 导致依赖关系不明确(虽实际无第三方依赖),建议用户自行 fork 维护稳定版本

Douban Sync 内容

scripts文件夹
手动下载zip · 12.5 kB
douban-browser-scraper.jstext/javascript
请选择文件