Files
MediaCrawler/mac-agent-os-main/archive_docs/matrix_docs/PROJECT_OVERVIEW.md
T
butubb 2112c1a870
Deploy VitePress site to Pages / build (push) Canceled after 0s
Deploy VitePress site to Pages / Deploy (push) Canceled after 0s
feat(monitor): 抖音 Web 接口客户端 —— 绕开爬虫子进程,直接发 HTTP
移植自 mac-agent-os 的 mediacrawler_adapter:不起子进程、不开页面,用浏览器里那份
登录态直接调抖音 Web 接口。产物键名照抄 store/douyin,所以 ingest 那条链路一个字不用改。

**目前能用的(真环境实测,非推断)**:

    profile/other : 200, 7075 字节  —— 博主主页指标(粉丝/获赞/作品数/昵称)
    aweme/detail  : 200, 45425 字节 —— 单条作品详情(含点赞/评论/收藏/分享)

**目前不能用的:作品列表 `aweme/post`。** 两个互相独立的原因:
  1. 这个接口被抖音单独升级成了真校验:不带 x-tt-argus 回 403「Uifid Not Found」,
     带上 dummy 值回 200 + **空 body**。也就是说「头在不在」骗得过,「真校验」过不了。
     同一套头打 profile/other 和 aweme/detail 都是通的 —— 抖音是挑着接口加保护的,
     挑中的恰好是「批量拉作品列表」这个最敏感的动作。
  2. 改走页面截获也不行:CDP 浏览器打开博主主页会落到「验证码中间页」(当天大量探测的
     代价,过几小时要重测)。

  所以现在的边界是:**已知作品的指标刷新能做,自动发现新作品做不了**。

**排查中控住变量后得到的两条事实**(都写进注释了):
  · `Accept` / `Accept-Language` / `Referer` 才是主页接口能返回真数据的原因 —— 只有
    UA+client hints+Cookie 时是 200 但仅 121 字节的空壳,补上这三个头变 7074 字节。
    (我先前猜的 sec-ch-ua 不是关键。)
  · 因此 UA 与 client hints 必须**成套地取自同一个浏览器**,所以 BrowserIdentity 一次
    从 CDP 取齐 cookie + UA + hints,而不是各自写死。

「200 + 空 body 必须当场报错」也是刻意写死的:放过去它会在下游变成「这个博主没作品」,
把一次失败伪装成一条正常结果 —— 爬虫那条路正是这么栽的,还被翻译成「账号被封」。

测试 +11:cookie 解析、请求头成套性(含 uifid 缺失/回退)、产物键名与 store 对齐、
以及 _get 的三条失败路径(空 body / 403 带网关原话 / 正常返回)。
2026-10-10 17:12:25 +08:00

19 KiB
Raw Blame History

矩阵养号系统 Matrix — 完整项目说明

项目版本: v3.0(2026-04-28) 负责人: ghai 最后更新: 2026-04-28


一、项目概述

1.1 什么是矩阵养号系统

矩阵养号系统是一个自动化社交账号运营工具,通过程序化控制浏览器完成抖音、小红书、知乎等平台的日常养号任务。目标是让多个账号模拟真实用户行为,提升账号权重和活跃度。

1.2 核心价值

价值点 说明
自动化 告别手动操作,自动执行浏览、点赞、评论、收藏等任务
多账号 支持同时管理多个账号,每个账号独立隔离
反检测 内置多种反检测措施,降低被平台识别为机器人的风险
可扩展 支持多平台、蓝图化任务、灵活配置
可迁移 完整的环境配置和迁移方案

1.3 支持平台

平台 状态 核心功能
抖音 ✅ 已实现 推荐浏览、搜索、点赞、收藏、评论、关注
小红书 🔄 框架完成 需登录账号
知乎 🔄 框架完成 需登录账号
快手 📋 规划中 待开发

二、宏伟蓝图与目标

2.1 最终愿景

打造一个全平台、智能化、可持续的社交账号矩阵运营系统

2.2 发展阶段规划

阶段A ✅ 已完成(2026-04-27)
├── Chrome CDP 直连
├── 抖音原子操作库 V2(18个操作)
├── 蓝图执行引擎
├── 定时调度器
├── 账号切换器(双方案)
├── 指纹注入
└── 双账号并行

阶段B 🔄 进行中
├── Camoufox(Firefox内核)集成 ← 当前卡点
├── 多浏览器内核支持
├── 提升反检测能力
└── 第二个账号登录

阶段C 📋 规划中
├── 鼠标轨迹仿真
├── 语料库完善
├── Canvas/AudioContext 指纹噪声
└── 静态住宅IP接入

阶段D 📋 规划中
├── 小红书完整支持
├── 知乎完整支持
├── 多平台联动
└── 智能行为决策

2.3 里程碑目标

阶段 目标账号数 反检测等级 自动化程度
A 1-2个 ⭐⭐ 半自动(需手动登录)
B 2-4个 ⭐⭐⭐ 半自动(Camoufox)
C 4-8个 ⭐⭐⭐⭐ 全自动
D 10+个 ⭐⭐⭐⭐⭐ 全自动+智能决策

三、项目架构

3.1 整体架构图

┌─────────────────────────────────────────────────────────────────┐
│                         用户指令 / 定时触发                        │
└─────────────────────────────────────────────────────────────────┘
                                  ↓
┌─────────────────────────────────────────────────────────────────┐
│                      蓝图引擎 (task_engine.py)                    │
│                      定时调度 (task_scheduler.py)                   │
└─────────────────────────────────────────────────────────────────┘
                                  ↓
┌─────────────────────────────────────────────────────────────────┐
│                     原子操作库 (douyin_ops.py)                     │
│                     18个最小操作单元,含前置检查+执行+后置验证          │
└─────────────────────────────────────────────────────────────────┘
                                  ↓
┌─────────────────────────────────────────────────────────────────┐
│                     账号切换器 (switch_account.py)                  │
│              方案A: Chrome Profile切换  方案B: Cookie注入            │
└─────────────────────────────────────────────────────────────────┘
                                  ↓
┌─────────────────────────────────────────────────────────────────┐
│  ┌──────────────────┐         ┌──────────────────┐              │
│  │   Chrome CDP      │         │   Camoufox       │              │
│  │   端口 9222/9223  │         │   端口 9301/9302 │              │
│  │   ✅ 已完成       │         │   🔄 进行中      │              │
│  └──────────────────┘         └──────────────────┘              │
└─────────────────────────────────────────────────────────────────┘
                                  ↓
┌─────────────────────────────────────────────────────────────────┐
│                     抖音网页 / 小红书 / 知乎                         │
└─────────────────────────────────────────────────────────────────┘

3.2 核心组件

组件 文件 职责
原子操作库 scripts/douyin_ops.py 封装18个浏览器操作
CDP连接器 scripts/cdp_connector.py 管理Chrome CDP连接
账号切换器 scripts/switch_account.py 多账号Profile切换
Camoufox管理 scripts/camoufox_manager.py Firefox内核管理
蓝图引擎 scripts/task_engine.py 读取执行JSON蓝图
定时调度 scripts/task_scheduler.py Cron定时任务
数据库 data/matrix.db 账号、蓝图、日志存储

3.3 数据流

蓝图JSON → 引擎解析 → 操作序列 → CDP执行 → 页面响应 → 日志记录
              ↓
         频率控制(防封)
              ↓
         错误恢复(自动重试)
              ↓
         结果统计(数据库)

四、环境依赖

4.1 系统要求

项目 要求 当前环境
操作系统 macOS (Apple Silicon) ✅ macOS
Python 3.13+ ✅ 3.13.12
Chrome 最新版 ✅ 已安装
磁盘空间 10GB+ ✅ 充足

4.2 Python环境

# 使用的Python路径
/Users/7kecheng/.workbuddy/binaries/python/versions/3.13.12/bin/python3

必须安装的包:

pip install patchright camoufox pyyaml aiosqlite

4.3 浏览器

浏览器 用途 状态 端口
Chrome 主要浏览器 ✅ 已配置 9222/9223
Camoufox Firefox内核(反检测更强) 🔄 配置中 9301/9302

4.4 目录结构

~/matrix/
├── docs/                           # 项目文档
│   ├── PROJECT_OVERVIEW.md         # 本文件(项目总览)
│   ├── DOUYIN_FULL_PLAN.md         # 抖音完整方案
│   ├── DOUYIN_SELECTORS.md         # 选择器手册
│   ├── PHASE_A_SUMMARY.md          # 阶段A完成总结
│   ├── CAMOUFOX_LOGIN_MANAGEMENT.md # Camoufox集成方案
│   ├── IP_SWITCH_GUIDE.md          # IP切换指南
│   ├── IMPLEMENTATION_GUIDE.md     # 落地手册
│   └── LOCAL_ADAPTATION.md         # 本地适配说明
├── scripts/                        # 核心脚本
│   ├── douyin_ops.py               # 原子操作库(18操作)
│   ├── cdp_connector.py            # CDP连接器
│   ├── switch_account.py           # 账号切换器
│   ├── camoufox_manager.py         # Camoufox管理器
│   ├── task_engine.py              # 蓝图引擎
│   ├── task_scheduler.py           # 定时调度
│   ├── seed_db.py                  # 数据库初始化
│   ├── init_db.py                  # 数据库初始化
│   └── launch_chrome.sh            # Chrome启动脚本
├── blueprints/                     # 任务蓝图
│   ├── douyin_browse_v2.json       # 日常浏览V2(11步)
│   ├── douyin_search_browse.json   # 搜索浏览(7步)
│   ├── douyin_comment_interact.json # 评论互动(8步)
│   └── douyin_browse.json          # 日常浏览V1(已废弃)
├── config/                         # 配置文件
│   └── accounts.yaml               # 账号配置
├── data/                           # 数据存储
│   ├── matrix.db                   # SQLite数据库
│   ├── cookies/                    # Cookie存储
│   └── camoufox_pids/             # Camoufox进程PID
├── profiles/                       # 浏览器Profile
│   ├── account_01/                 # 抖音主号Profile
│   ├── douyin_02/                  # 抖音副号Profile
│   ├── camoufox_01/               # Camoufox账号1
│   └── camoufox_02/               # Camoufox账号2
├── corpus/                         # 语料库
├── logs/                           # 日志
├── screenshots/                    # 截图存档
└── docker/                         # Docker配置(未来)

五、当前状态

5.1 已完成功能

✅ 阶段A:Chrome CDP 方案

功能 状态 说明
CDP直连Chrome ✅ 完成 Patchright connect_over_cdp
原子操作库V2 ✅ 完成 18个操作,含前置检查+后置验证
蓝图引擎 ✅ 完成 JSON蓝图顺序执行
定时调度 ✅ 完成 Cron表达式调度
账号切换器 ✅ 完成 Profile切换+Cookie注入
指纹注入 ✅ 完成 视口+时区+语言+WebGL
双账号并行 ✅ 完成 端口9222+9223

🔄 阶段B:Camoufox 集成(进行中)

功能 状态 说明
Camoufox包安装 ✅ 完成 v3.0.0
Camoufox浏览器下载 ✅ 完成 v135.0.1-beta.24
Profile目录创建 ✅ 完成 camoufox_01, camoufox_02
Camoufox启动 🔄 卡住 executable_path配置问题
Camoufox登录 ⏸ 待开始 需启动后才能登录
Camoufox CDP连接 ⏸ 待开始 需登录后验证

5.2 账号状态

账号ID 平台 端口 浏览器 状态
douyin_01 抖音 9222 Chrome ✅ 已登录
douyin_02 抖音 9223 Chrome ⏸ 待登录
xhs_01 小红书 9224 Chrome ⏸ 待注册
zhihu_01 知乎 9225 Chrome ⏸ 待注册
douyin_camo01 抖音 9301 Camoufox 🔄 配置中
douyin_camo02 抖音 9302 Camoufox 🔄 配置中

5.3 蓝图状态

蓝图ID 名称 步骤数 状态 备注
douyin_browse_v2 日常浏览V2 11步 ✅ 活跃 推荐使用
douyin_search_browse 搜索浏览 7步 ✅ 活跃 -
douyin_comment_interact 评论互动 8步 ✅ 活跃 -
douyin_browse 日常浏览V1 8步 ⛔ 废弃 不再使用

六、遇到的问题

6.1 Camoufox 启动问题(当前卡点)

问题描述:

FileNotFoundError: [Errno 2] No such file or directory: 
'/Users/7kecheng/Library/Caches/camoufox/Camoufox.app/Contents/MacOS/properties.json'

原因分析:

  • Camoufox 浏览器缓存文件不完整
  • camoufox_manager.py 中显式指定的 executable_path 导致路径查找错误
  • properties.json 文件实际位于 Resources 目录,而非 MacOS 目录

已尝试的解决:

  1. ✅ 清理缓存 rm -rf ~/Library/Caches/camoufox
  2. ✅ 重新下载 camoufox fetch
  3. ✅ 修改脚本移除显式 executable_path 路径

当前状态:

  • 已修改 camoufox_manager.py 第148-154行
  • 等待下次启动验证

6.2 踩坑记录(历史问题,已解决)

问题 日期 原因 解决方案
hash() 跨进程不一致 2026-04-27 Python随机种子 改用 sum(ord(c))
移动端UA覆盖破坏登录 2026-04-27 Android UA导致Cookie校验失败 不覆盖UA
移动端视口破坏登录 2026-04-27 mobile: True改变渲染 mobile: False
视口过窄 2026-04-27 初始参数480px 实测702x783最佳
Profile目录名错误 2026-04-27 配置与实际不符 修正accounts.yaml

七、下一步计划

7.1 立即任务(今天)

优先级 任务 状态 操作
P0 Camoufox启动验证 🔄 进行中 移除executable_path后重新启动
P0 douyin_camo01登录 ⏸ 等待 启动后手动扫码登录
P0 导出Cookie ⏸ 等待 登录后导出备份

7.2 短期任务(本周)

优先级 任务 预计时间
P0 Camoufox CDP连接验证 1小时
P1 鼠标轨迹仿真 4小时
P1 语料库填充 1小时
P2 douyin_02登录 1小时

7.3 中期任务(本月)

优先级 任务 预计时间
P1 静态住宅IP接入 按服务商
P2 Cookie方案B完善 4小时
P3 小红书支持 1天
P3 知乎支持 1天

7.4 长期任务(未来)

任务 说明
多平台联动 抖音→小红书→知乎互动联动
智能决策 AI驱动的行为决策
Docker容器化 完全隔离的多容器部署

八、如何执行

8.1 快速开始

# 1. 进入项目目录
cd ~/matrix

# 2. 查看帮助
/Users/7kecheng/.workbuddy/binaries/python/versions/3.13.12/bin/python3 scripts/switch_account.py --help

# 3. 启动Chrome账号(方案A)
/Users/7kecheng/.workbuddy/binaries/python/versions/3.13.12/bin/python3 scripts/switch_account.py --method profile --target douyin_01 --port 9222

# 4. 查看状态
/Users/7kecheng/.workbuddy/binaries/python/versions/3.13.12/bin/python3 scripts/switch_account.py --status

8.2 执行蓝图

# 执行日常浏览蓝图
/Users/7kecheng/.workbuddy/binaries/python/versions/3.13.12/bin/python3 scripts/task_engine.py --blueprint douyin_browse_v2 --account douyin_01

# 执行搜索浏览蓝图
/Users/7kecheng/.workbuddy/binaries/python/versions/3.13.12/bin/python3 scripts/task_engine.py --blueprint douyin_search_browse --account douyin_01

8.3 Camoufox操作(待修复后)

# 启动Camoufox
/Users/7kecheng/.workbuddy/binaries/python/versions/3.13.12/bin/python3 scripts/camoufox_manager.py --launch douyin_camo01

# 验证登录
/Users/7kecheng/.workbuddy/binaries/python/versions/3.13.12/bin/python3 scripts/camoufox_manager.py --verify douyin_camo01

# 导出Cookie
/Users/7kecheng/.workbuddy/binaries/python/versions/3.13.12/bin/python3 scripts/camoufox_manager.py --export douyin_camo01

8.4 定时调度

# 添加每日任务(每天9点执行)
/Users/7kecheng/.workbuddy/binaries/python/versions/3.13.12/bin/python3 scripts/task_scheduler.py --add "douyin_browse_v2" --cron "0 9 * * *"

九、迁移方案

9.1 迁移准备清单

迁移前需要准备以下内容:

□ 源码目录 ~/matrix/
□ Profile目录 ~/matrix/profiles/
□ Cookie备份 ~/matrix/data/cookies/
□ 配置文件 config/accounts.yaml
□ 浏览器安装(Chrome / Camoufox)
□ Python 3.13+ 环境
□ pip 包(patchright, camoufox, pyyaml)

9.2 完整迁移步骤

# 1. 打包源码(排除大文件和缓存)
rsync -av --exclude='profiles/*/Cache' \
      --exclude='logs/*.log' \
      --exclude='.DS_Store' \
      ~/matrix/ /path/to/backup/matrix/

# 2. 打包Profile(选择性迁移登录状态)
rsync -av ~/matrix/profiles/account_01/ /path/to/backup/profiles/account_01/

# 3. 打包Cookie
rsync -av ~/matrix/data/cookies/ /path/to/backup/cookies/

# 4. 在新机器安装依赖
pip install patchright camoufox pyyaml aiosqlite

# 5. 下载Camoufox浏览器
python3 -m camoufox fetch

# 6. 启动Chrome并验证
python3 scripts/switch_account.py --status

9.3 迁移后检查

# 检查Python环境
python3 --version  # 应为3.13+

# 检查pip包
pip list | grep -E "patchright|camoufox|pyyaml"

# 检查Chrome
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --version

# 检查Camoufox
python3 -m camoufox path

# 初始化数据库
python3 scripts/init_db.py

# 测试CDP连接
python3 scripts/switch_account.py --status

9.4 注意事项

  1. Profile迁移:Cookie和登录状态在Profile中,整体迁移最简单
  2. Camoufox:每个平台需要单独下载浏览器
  3. 代理配置:如果使用代理,迁移后需更新账号配置
  4. 端口占用:确保9222-9322端口未被占用

十、常见问题

Q1: Chrome无法启动?

# 检查Chrome是否安装
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --version

# 检查端口是否被占用
lsof -i :9222

Q2: CDP连接失败?

# 启动Chrome时添加CDP端口
"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" \
  --remote-debugging-port=9222 \
  --user-data-dir=~/matrix/profiles/account_01

Q3: Camoufox下载失败?

# 设置代理后重试
export https_proxy=http://127.0.0.1:7890
python3 -m camoufox fetch

Q4: 账号被封禁?

  • 降低操作频率
  • 使用静态住宅IP
  • 增加随机延迟
  • 模拟真实用户行为

十一、联系方式

  • 项目负责人: ghai
  • 项目目录: ~/matrix/
  • 文档目录: ~/matrix/docs/

附录A:关键文件路径速查

文件 路径
项目根目录 ~/matrix/
账号配置 ~/matrix/config/accounts.yaml
原子操作库 ~/matrix/scripts/douyin_ops.py
CDP连接器 ~/matrix/scripts/cdp_connector.py
账号切换器 ~/matrix/scripts/switch_account.py
Camoufox管理 ~/matrix/scripts/camoufox_manager.py
数据库 ~/matrix/data/matrix.db
Cookie存储 ~/matrix/data/cookies/
Profile存储 ~/matrix/profiles/

附录B:环境变量速查

变量 值
PYTHON /Users/7kecheng/.workbuddy/binaries/python/versions/3.13.12/bin/python3
CHROME /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
CAMOUFOX_CACHE ~/Library/Caches/camoufox/
PROJECT_DIR ~/matrix/

文档版本: v1.0 创建日期: 2026-04-28 更新日期: 2026-04-28