整条私信链跑在一个隐形 Edge(headless,屏幕上看不见)里,靠 CDP 直接读写网页 DOM——不截图、不点坐标、不抢窗口。本手册讲一台机器怎么从零搭起来 + 每天怎么跑。黄色 = 关键操作 / 关键设置。
| 腿 | 干什么 | 怎么开 |
|---|---|---|
| 首触派单 | poll agent 自动 claim 新 lead → DOM 进对方主页点「私信」发招呼 | AKKE_DM_SCRIPT=douyin_dm_web_send_dom.py |
| DOM 捕获回复 | 每轮读私信会话列表 → 红点判客户回复 → 写回库 → 自动起草 | AKKE_WEB_DM_USE_DOM=1 等 3 个 env |
两条腿都在 poll agent(wuying_poll_agent.py)里,共用同一个隐形 Edge。
C:\akke-wuying\wuying-dm)py --version 能出版本).env 里已有 SUPABASE_* 鉴权 + AKKE_ACCOUNT_ID(PM 下发那套)py -m pip install playwright uiautomation # attach 现成 Edge, 不用 playwright install
跟着日常 update.bat 拉,或确认这两个在目录里:douyin_dm_web_capture_dom.py、douyin_dm_web_send_dom.py,以及改过的 douyin_dm_autoreply.py。
$edge="C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe"
if(!(Test-Path $edge)){$edge="C:\Program Files\Microsoft\Edge\Application\msedge.exe"}
Start-Process $edge -ArgumentList '--remote-debugging-port=9222','--user-data-dir=C:\akke-edge-debug','https://www.douyin.com'
首次用可见窗口起(去掉 headless),在弹出的 Edge 里登录抖音 + 点开一次私信。登录态存进 C:\akke-edge-debug,以后隐形起也带着。
AKKE_DM_SCRIPT=douyin_dm_web_send_dom.py # 首触派单走 DOM(含 web → 路由对) AKKE_WEB_DM_USE_DOM=1 # 捕获走 DOM AKKE_WEB_DM_DOM_COMMIT=1 # 捕获真写库 AKKE_DM_AUTOREPLY_CAPTURE=1 # 开捕获腿
命令行追加(纯 ASCII 安全):Add-Content -Path .env -Value "AKKE_WEB_DM_USE_DOM=1`nAKKE_WEB_DM_DOM_COMMIT=1`nAKKE_DM_AUTOREPLY_CAPTURE=1" -Encoding ascii
Start-Process "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe" -ArgumentList '--headless=new','--remote-debugging-port=9222','--user-data-dir=C:\akke-edge-debug','https://www.douyin.com'
浏览器开 http://127.0.0.1:9222/json/version 有 JSON = Edge 通了 # 想更确切: 跑一次捕获看读不读得到 cd C:\akke-wuying\wuying-dm ; py douyin_dm_web_capture_dom.py # conversation-item N>0 = 通
cd C:\akke-wuying\wuying-dm
py wuying_poll_agent.py
conversation-item 0 或报没登录):关掉 headless Edge,用可见窗口起(命令里去掉 --headless=new),在弹出的 Edge 里重新登录抖音 + 点开一次私信,再按上面 1→3 重来。Cookie 一般能撑 15-30 天,不用天天登。poll agent claim 到 lead 时自动跑,日志出现:
AKKE_WEB_DM_MIN/MAX_INTERVAL 调。手动测一条(隐形 Edge 开着):
py douyin_dm_web_send_dom.py --sec=<sec_uid> --msg="你好" # dry-run 不发 py douyin_dm_web_send_dom.py --sec=<sec_uid> --msg="你好" --send # 真发
poll agent 每轮自动跑,日志出现(看到 [DOM] 就是走 DOM;有真回复出 [inbound]):
| 现象 | 原因 / 处理 |
|---|---|
| 有些私信没发出去 / 发到错窗口 | 开了可见的第二个 Edge 抢焦点。确保捕获 Edge 是 headless 隐形 的,发送那个(如还用 pyautogui)才是唯一可见窗口 |
日志 连不上 CDP / 没找到 douyin 页 | 隐形 Edge 没起或被关。重跑开机第 1 步,http://127.0.0.1:9222/json/version 验 |
捕获 conversation-item 0 + 弃权 | 该轮私信面板没挂上(发送腿导航走了)→ 自动重开;持续 0 才需查 |
首发 no_secuid | 该 lead 没 sec_uid(web 强依赖)→ 自动跳过,正常 |
首发 dm_panel_failed | 对方主页「私信」没点开(隐私设置/超时)→ 回池重试 3 次后跳过,不罚账号 |
| 改了 .env 没生效 | python-dotenv 只在启动读 → 必须重启 poll agent |
| 传文件到云电脑下坏了 | 用 curl.exe -o,别用 iwr(会转码坏文件) |
AKKE_DM_SCRIPT=douyin_dm_web_grounded.py # 首触回 pyautogui 版 # 删掉 / 改 0: AKKE_WEB_DM_USE_DOM # 捕获回 VL 版