SuperAPI AI 工具集

personal-data-harvester

数据与分析

查看项目

更新于 10-16 08:13

技能介绍

Personal Data Harvester 是一个面向 Claude 的技能,目标是让 Claude 自主搭建并维护一条本地数据管道,把用户分散在多个平台上的个人内容历史收集起来,统一存入结构化的 SQLite 数据库,并随时间保持更新。

用途 它解决的是个人内容历史散落在不同平台、难以统一查看和利用的问题。覆盖的平台包括豆瓣、小红书、B站、微信读书、抖音、Kindle 等中外平台。收集到的数据可供下游智能体查询,例如生成近期收藏摘要或兴趣画像。

核心理念

  • 用户自己的数据,用户自己的设备:所有采集都在用户已认证的会话中或从本地缓存文件进行,不存储凭据,复用现有浏览器会话。
  • 优雅降级:每个平台都有主策略和备用策略。当自动化因平台改版或限流而失效时,回退到文件导入,且不丢失已有数据。
  • 隐私优先:数据默认留在本地,除非用户明确要求,否则不上传。

主要能力与工作步骤 技能按步骤引导 Claude 完成整条管道:

  1. 环境评估:检查 Python 版本(需 >= 3.10)、Playwright、beautifulsoup4 等依赖,并询问用户优先采集哪些平台、主用设备、可接受的采集频率。
  2. 初始化本地数据库:创建统一的 items 表,字段包括 id、platform、type、title、url、creator、tags、user_rating、user_status、user_note、summary、collected_at、harvested_at,并建立平台、类型、状态索引。所有采集器写入同一个数据库。
  3. 按平台选择采集策略:例如豆瓣用 Playwright 浏览器自动化(已登录会话),备用 HTML 导出解析;小红书用浏览器插件 DOM 捕获或 Playwright,备用手动分享链接录入;B站用 Playwright(DevTools 中可见的收藏 API 端点),备用官方数据导出;微信读书读取本地 SQLite 缓存文件,备用网页版 Playwright;抖音用 iOS/Android 分享面板转链接解析,备用 Playwright;Kindle 解析 My Clippings.txt,备用 Goodreads 导出。
  4. 实现采集脚本:提供两种模式。模式 A 为 Playwright 浏览器自动化(豆瓣、B站、小红书),示例脚本演示如何复用用户浏览器配置、翻页抓取、解析评分与笔记并 upsert 入库。模式 B 为本地文件解析(微信读书、Kindle),示例脚本演示如何只读打开微信读书本地 SQLite 缓存、发现表名与列名、解析 Kindle My Clippings.txt 中的高亮与笔记。
  5. 自愈:运行 health_check.py 统计各平台条目数与最近采集时间,标记超过 48 小时未更新的平台;采集失败时截图查看当前 DOM、更新选择器、重跑并验证数量增加。
  6. 持续采集:通过 crontab 或 macOS launchd plist 设置每日定时运行。
  7. 向智能体暴露数据:提供查询函数示例,如获取近 N 天条目、聚合兴趣画像(按状态计数、高频创作者)。

使用方式 技能以 Claude 技能形式提供,用户通过 Claude 调用。技能内含可直接使用的 Python 脚本示例(init_db.py、scrape_douban.py、parse_wechatread.py、parse_kindle.py、health_check.py 等),以及 crontab 与 launchd 配置示例。首次运行采集器时以非无头模式启动,让用户登录,检测到登录成功后改为无头运行。

适用场景 适合希望把豆瓣读书/影视、B站收藏、小红书笔记、微信读书、Kindle 高亮等个人内容历史集中到本地数据库,并让 AI 智能体基于这些数据提供个性化服务的用户。

限制

  • 依赖用户已登录的会话或本地缓存文件,平台改版或限流可能导致自动化失效,需要更新选择器或回退到文件导入。
  • 微信读书本地数据库路径与表名随 macOS 版本和客户端版本变化,需先发现表结构。
  • 抖音的 Playwright 方案较难且受限流影响。
  • 具体平台的完整选择器、API 端点、本地文件路径与限流细节在 references/platforms.md 中,资料未提供该文件全文。
  • 资料未提供收费、价格、平台支持范围或效果保证等信息。