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 带网关原话 / 正常返回)。
This commit is contained in:
@@ -0,0 +1,427 @@
|
||||
version: '1.0'
|
||||
categories:
|
||||
赞美:
|
||||
weight: 30
|
||||
enabled: true
|
||||
label: 赞美评论
|
||||
comments:
|
||||
- text: 这个观点很新颖,学习了
|
||||
role: sharer
|
||||
- text: 说得真是振聋发聩
|
||||
role: sharer
|
||||
- text: 干货满满,感谢分享
|
||||
role: sharer
|
||||
- text: 条理清晰,逻辑严密
|
||||
role: sharer
|
||||
- text: 每一句话都说到了心坎里
|
||||
role: sympathizer
|
||||
- text: 太有深度了,值得反复看
|
||||
role: sharer
|
||||
- text: 这是我今天看到最好的内容
|
||||
role: sharer
|
||||
- text: 说得太好了,完全认同
|
||||
role: sympathizer
|
||||
- text: 高质量的分享,收藏了
|
||||
role: filler
|
||||
- text: 看完受益匪浅,谢谢博主
|
||||
role: sharer
|
||||
- text: 这个角度很独特,佩服
|
||||
role: sharer
|
||||
- text: 讲得透彻,深入浅出
|
||||
role: sharer
|
||||
- text: 好内容,必须支持一下
|
||||
role: filler
|
||||
- text: 博主很有想法,关注了
|
||||
role: filler
|
||||
- text: 这个分析很到位
|
||||
role: sharer
|
||||
templates:
|
||||
- text: 关于{keyword}的观点很到位
|
||||
role: sharer
|
||||
- text: 感谢分享{keyword}的心得
|
||||
role: sharer
|
||||
- text: 说得太好了,{keyword}这部分启发很大
|
||||
role: sharer
|
||||
- text: 对{keyword}的分析很透彻
|
||||
role: sharer
|
||||
- text: '{keyword}这个角度很新颖'
|
||||
role: sharer
|
||||
- text: 看完对{keyword}有了新的认识
|
||||
role: sharer
|
||||
- text: '{keyword}说得真不错'
|
||||
role: sharer
|
||||
|
||||
共鸣:
|
||||
weight: 20
|
||||
enabled: true
|
||||
label: 共鸣评论
|
||||
comments:
|
||||
- text: 太真实了,说的就是我
|
||||
role: sympathizer
|
||||
- text: 我也是这么想的
|
||||
role: sympathizer
|
||||
- text: 说出了我的心声
|
||||
role: sympathizer
|
||||
- text: 这段话我要截图保存
|
||||
role: sympathizer
|
||||
- text: 笑着笑着就沉默了
|
||||
role: sympathizer
|
||||
- text: 太有同感了
|
||||
role: sympathizer
|
||||
- text: 终于有人说出这个了
|
||||
role: sympathizer
|
||||
- text: 看到最后破防了
|
||||
role: sympathizer
|
||||
- text: 这就是生活啊
|
||||
role: sympathizer
|
||||
- text: 说得太对了
|
||||
role: sympathizer
|
||||
- text: 感觉在说我本人
|
||||
role: sympathizer
|
||||
- text: 同一个世界同一个感受
|
||||
role: sympathizer
|
||||
- text: 经历过的人才懂
|
||||
role: sympathizer
|
||||
- text: 说到心坎里了
|
||||
role: sympathizer
|
||||
- text: 泪目了
|
||||
role: sympathizer
|
||||
templates:
|
||||
- text: 看到{keyword}想起了自己
|
||||
role: sufferer
|
||||
- text: '{keyword}真的太真实了'
|
||||
role: sympathizer
|
||||
- text: 说到{keyword}我也有同感
|
||||
role: sympathizer
|
||||
- text: '{keyword}的经历我也有过'
|
||||
role: sufferer
|
||||
|
||||
提问:
|
||||
weight: 15
|
||||
enabled: true
|
||||
label: 提问互动
|
||||
comments:
|
||||
- text: 请问这是在哪里?
|
||||
role: questioner
|
||||
- text: 能分享一下具体方法吗?
|
||||
role: questioner
|
||||
- text: 新手想问一下怎么入门
|
||||
role: questioner
|
||||
- text: 这个需要什么工具?
|
||||
role: questioner
|
||||
- text: 有教程吗?想学
|
||||
role: questioner
|
||||
- text: 大概需要多长时间?
|
||||
role: questioner
|
||||
- text: 这个操作难不难?
|
||||
role: questioner
|
||||
- text: 求推荐入门级的
|
||||
role: questioner
|
||||
- text: 有没有什么注意事项?
|
||||
role: questioner
|
||||
- text: 这个效果能持续多久?
|
||||
role: questioner
|
||||
- text: 可以说一下详细步骤吗?
|
||||
role: questioner
|
||||
- text: 一般多少钱?
|
||||
role: questioner
|
||||
- text: 在哪里可以买到?
|
||||
role: questioner
|
||||
- text: 和其他的比有什么优势?
|
||||
role: questioner
|
||||
- text: 适合新手吗?
|
||||
role: questioner
|
||||
templates:
|
||||
- text: '{keyword}具体怎么操作?'
|
||||
role: questioner
|
||||
- text: 能详细讲讲{keyword}吗?
|
||||
role: questioner
|
||||
- text: '{keyword}难不难学?'
|
||||
role: questioner
|
||||
- text: 求推荐{keyword}的入门教程
|
||||
role: questioner
|
||||
- text: '{keyword}大概需要多少钱?'
|
||||
role: questioner
|
||||
|
||||
解答:
|
||||
weight: 15
|
||||
enabled: true
|
||||
label: 解答互动
|
||||
comments:
|
||||
- text: 楼上问的这个我刚好弄过,其实没那么难
|
||||
role: answerer
|
||||
- text: 这个问题我也遇到过,后来发现是方法不对
|
||||
role: answerer
|
||||
- text: 有人问怎么入门,我是从最简单的教程开始看的
|
||||
role: answerer
|
||||
- text: 评论区问得最多的就是流程,我踩过坑,按视频里说的来就行
|
||||
role: answerer
|
||||
- text: 看好多人在问,我是直接找官方渠道问的,回复挺快
|
||||
role: answerer
|
||||
- text: 前面有人问在哪里能弄,我是自己搜出来的,其实不难找
|
||||
role: answerer
|
||||
- text: 这个问题我身边也好多人问,最后还是老老实实按博主说的做了
|
||||
role: answerer
|
||||
- text: 我是自己试出来的,第一步先准备好工具,后面就顺了
|
||||
role: answerer
|
||||
- text: 这个我会,注意别跳过准备工作,不然白费劲
|
||||
role: answerer
|
||||
- text: 我用了大概一周就上手了,关键是多练
|
||||
role: answerer
|
||||
- text: 直接搜官方教程就行,别乱买课
|
||||
role: answerer
|
||||
- text: 我是找懂行的人带了一程,少走不少弯路
|
||||
role: answerer
|
||||
- text: 先查清楚注意事项再做,我就是没提前看才返工的
|
||||
role: answerer
|
||||
- text: 其实流程不复杂,跟着步骤来,别自己发挥
|
||||
role: answerer
|
||||
templates:
|
||||
- text: 楼上问{keyword}的,我是这么弄的,亲测有效
|
||||
role: answerer
|
||||
- text: '{keyword}这个问题我也遇到过,后来发现是没注意细节'
|
||||
role: answerer
|
||||
- text: 有人问{keyword}怎么搞,按我自己的经验,先别急慢慢来
|
||||
role: answerer
|
||||
- text: 关于{keyword},我踩过坑,提前做好准备能省不少事
|
||||
role: answerer
|
||||
- text: 看评论区都在问{keyword},我分享一下我的做法
|
||||
role: answerer
|
||||
|
||||
感慨:
|
||||
weight: 15
|
||||
enabled: true
|
||||
label: 生活感慨
|
||||
comments:
|
||||
- text: 生活不易,且行且珍惜
|
||||
role: sympathizer
|
||||
- text: 每个人都有自己的故事
|
||||
role: sympathizer
|
||||
- text: 看得我热泪盈眶
|
||||
role: sympathizer
|
||||
- text: 这就是生活啊
|
||||
role: sympathizer
|
||||
- text: 人间真实
|
||||
role: sympathizer
|
||||
- text: 时间过得真快
|
||||
role: sympathizer
|
||||
- text: 岁月静好
|
||||
role: sympathizer
|
||||
- text: 满满的回忆
|
||||
role: sympathizer
|
||||
- text: 这就是成长吧
|
||||
role: sympathizer
|
||||
- text: 谁的生活不是一地鸡毛
|
||||
role: sympathizer
|
||||
- text: 平平淡淡才是真
|
||||
role: sympathizer
|
||||
- text: 生活总会越来越好的
|
||||
role: sympathizer
|
||||
- text: 珍惜当下
|
||||
role: sympathizer
|
||||
- text: 有感而发
|
||||
role: sympathizer
|
||||
- text: 一切都是最好的安排
|
||||
role: sympathizer
|
||||
templates:
|
||||
- text: 看到{keyword}想起了自己的经历
|
||||
role: sufferer
|
||||
- text: '{keyword}真的让人感慨'
|
||||
role: sympathizer
|
||||
- text: 时间过得真快,{keyword}都变了
|
||||
role: sympathizer
|
||||
|
||||
客观:
|
||||
weight: 10
|
||||
enabled: true
|
||||
label: 客观评价
|
||||
comments:
|
||||
- text: 比较客观
|
||||
role: skeptic
|
||||
- text: 抛开立场看,说得有道理
|
||||
role: skeptic
|
||||
- text: 中肯的评价
|
||||
role: skeptic
|
||||
- text: 理性分析,值得一读
|
||||
role: skeptic
|
||||
- text: 实事求是
|
||||
role: skeptic
|
||||
- text: 这个观点比较中立
|
||||
role: skeptic
|
||||
- text: 有数据有真相
|
||||
role: skeptic
|
||||
- text: 客观公正
|
||||
role: skeptic
|
||||
- text: 不吹不黑
|
||||
role: skeptic
|
||||
- text: 说得很实在
|
||||
role: skeptic
|
||||
- text: 理性和感性都有
|
||||
role: skeptic
|
||||
- text: 分析得比较全面
|
||||
role: skeptic
|
||||
- text: 值得思考的问题
|
||||
role: questioner
|
||||
- text: 站在不同角度看问题
|
||||
role: skeptic
|
||||
templates:
|
||||
- text: 关于{keyword}的分析很客观
|
||||
role: skeptic
|
||||
- text: 理性的声音,{keyword}这部分说得好
|
||||
role: skeptic
|
||||
- text: 从客观角度看{keyword}确实如此
|
||||
role: skeptic
|
||||
|
||||
幽默:
|
||||
weight: 10
|
||||
enabled: true
|
||||
label: 幽默评论
|
||||
comments:
|
||||
- text: 哈哈哈哈笑死
|
||||
role: filler
|
||||
- text: 有才,这评论比视频还精彩
|
||||
role: filler
|
||||
- text: 笑不活了家人们
|
||||
role: filler
|
||||
- text: 你要把我笑死
|
||||
role: filler
|
||||
- text: 这届网友太有才了
|
||||
role: filler
|
||||
- text: 笑出腹肌了
|
||||
role: filler
|
||||
- text: 承包了我今天的笑点
|
||||
role: filler
|
||||
- text: 你是懂幽默的
|
||||
role: filler
|
||||
- text: 一边笑一边给你点赞
|
||||
role: filler
|
||||
- text: 论幽默还是你强
|
||||
role: filler
|
||||
- text: 笑死了哈哈哈
|
||||
role: filler
|
||||
- text: 这评论有毒
|
||||
role: filler
|
||||
templates:
|
||||
- text: '{keyword}这个梗笑死我了'
|
||||
role: filler
|
||||
- text: 哈哈哈哈{keyword}太有才了
|
||||
role: filler
|
||||
- text: '{keyword}还能这样?笑死'
|
||||
role: filler
|
||||
|
||||
# ═══════════════════════════════════════════════════════════════
|
||||
# 🏥 肛肠专科语料(2026-06-28 新增)
|
||||
# 大白话风格,不讲术语,像真人聊天
|
||||
# ═══════════════════════════════════════════════════════════════
|
||||
|
||||
共情弹幕:
|
||||
weight: 30
|
||||
enabled: true
|
||||
label: 共情弹幕
|
||||
accessible: ["health"]
|
||||
tags: ["douyin", "medical"]
|
||||
comments:
|
||||
- text: 坐一天班屁股跟针扎似的,谁懂啊!
|
||||
role: sufferer
|
||||
- text: 吃顿火锅一时爽,厕所出来就想给嘴一巴掌
|
||||
role: sufferer
|
||||
- text: 痔疮犯了坐立难安,开会的时候扭来扭去像长了虫子
|
||||
role: sufferer
|
||||
- text: 不好意思去医院,硬扛了仨月,我真服了自己这个老六
|
||||
role: sufferer
|
||||
- text: 各种药膏买了一抽屉,钱花了屁用没有,纯纯大冤种
|
||||
role: sufferer
|
||||
- text: 大医院排队排到怀疑人生,请一天假还不够折腾的
|
||||
role: sufferer
|
||||
- text: 疼到凌晨四点还搁那数羊,第二天还要爬起来搬砖
|
||||
role: sufferer
|
||||
- text: 每次上厕所跟上刑一样,完事儿腿都是软的
|
||||
role: sufferer
|
||||
- text: 听说要手术直接腿软,怕疼星人当场就想跑路
|
||||
role: sufferer
|
||||
- text: 反复发作真的破防了,这玩意儿就跟渣男一样甩不掉
|
||||
role: sufferer
|
||||
- text: 久坐党太难了,屁股和工位锁死了属于是
|
||||
role: sufferer
|
||||
- text: 社恐人一想到去肛肠科,脚趾已经抠出三室一厅了
|
||||
role: sufferer
|
||||
|
||||
朱晓光主任:
|
||||
weight: 30
|
||||
enabled: true
|
||||
label: 朱晓光主任
|
||||
accessible: ["health"]
|
||||
tags: ["douyin", "medical"]
|
||||
comments:
|
||||
- text: 朱晓光主任yyds,终于不用再遭罪了
|
||||
role: expert_ref
|
||||
- text: 朱主任手法是真的轻,怕疼星人狂喜!
|
||||
role: expert_ref
|
||||
- text: 身边好几个朋友都是找朱晓光看好的
|
||||
role: expert_ref
|
||||
- text: 朱主任问诊贼耐心,啥都给你讲明白
|
||||
role: expert_ref
|
||||
- text: 听朱主任的科普,才知道以前踩了多少坑
|
||||
role: expert_ref
|
||||
- text: 朱晓光技术真的顶,老肛瘘都给我整好了
|
||||
role: expert_ref
|
||||
- text: 朱主任说话挺温和,不会让你觉得尴尬
|
||||
role: expert_ref
|
||||
- text: 找朱晓光看过的都懂,恢复期确实短
|
||||
role: expert_ref
|
||||
- text: 朱主任的号我得蹲一下,口碑太好了
|
||||
role: expert_ref
|
||||
- text: 苏州肛泰朱晓光,看肛肠我是真服气
|
||||
role: expert_ref
|
||||
|
||||
公众号约号:
|
||||
weight: 25
|
||||
enabled: true
|
||||
label: 公众号约号
|
||||
accessible: ["health"]
|
||||
tags: ["douyin", "medical"]
|
||||
comments:
|
||||
- text: 在哪预约朱晓光的号?
|
||||
role: questioner
|
||||
- text: 求助,朱晓光的号在哪挂?
|
||||
role: questioner
|
||||
- text: 刚关注公众号,怎么约朱晓光?
|
||||
role: questioner
|
||||
- text: 公众号叫什么,怎么预约?
|
||||
role: questioner
|
||||
- text: 求公众号名字,我要去挂号
|
||||
role: questioner
|
||||
- text: 在哪个平台能挂到朱主任的号?
|
||||
role: questioner
|
||||
- text: 公众号是苏州肛泰吗,直接约就行?
|
||||
role: questioner
|
||||
- text: 想知道怎么约朱晓光,在线等挺急的
|
||||
role: questioner
|
||||
- text: 挂朱主任的号要提前几天?
|
||||
role: questioner
|
||||
- text: 公众号预约流程复复杂吗?
|
||||
role: questioner
|
||||
|
||||
术后恢复:
|
||||
weight: 15
|
||||
enabled: true
|
||||
label: 术后恢复
|
||||
accessible: ["health"]
|
||||
tags: ["douyin", "medical"]
|
||||
comments:
|
||||
- text: 做完手术第三天,已经能下地走了,比想象中轻松
|
||||
role: sharer
|
||||
- text: 术后注意饮食真的重要,我吃了三天粥了
|
||||
role: sharer
|
||||
- text: 听医生的按时换药,恢复得很快
|
||||
role: sharer
|
||||
- text: 术后一周了,感觉一天比一天好
|
||||
role: sharer
|
||||
- text: 最难熬的是术后第一晚,后面就好多了
|
||||
role: sufferer
|
||||
- text: 建议大家听医嘱,别学我提前下地
|
||||
role: sharer
|
||||
- text: 术后半个月,终于能正常坐了,感动
|
||||
role: sharer
|
||||
- text: 恢复期饮食清淡,人都瘦了,也算因祸得福
|
||||
role: sharer
|
||||
@@ -0,0 +1,140 @@
|
||||
version: '1.0'
|
||||
categories:
|
||||
穿搭:
|
||||
weight: 20
|
||||
enabled: true
|
||||
label: 穿搭评论
|
||||
comments:
|
||||
- 这套搭配好好看!
|
||||
- 求链接!
|
||||
- 色系搭配太舒服了
|
||||
- 超有气质
|
||||
- 这个风格很适合你
|
||||
- 求衣服链接
|
||||
- 太会穿了
|
||||
- 已种草这套搭配
|
||||
- 颜色搭配绝了
|
||||
- 这个季节穿刚好
|
||||
- 鞋子是哪家的?
|
||||
- 搭配得很高级
|
||||
- 简约又好看
|
||||
- 求全套链接
|
||||
- 你的衣品真好
|
||||
templates:
|
||||
- '{keyword}这套太好看了'
|
||||
- 求{keyword}的链接
|
||||
- "{keyword}搭得真好看"
|
||||
美妆:
|
||||
weight: 20
|
||||
enabled: true
|
||||
label: 美妆评论
|
||||
comments:
|
||||
- 这个妆面好干净
|
||||
- 求粉底色号
|
||||
- 口红颜色太美了
|
||||
- 教程很详细,收藏了
|
||||
- 这个妆容很自然
|
||||
- 眼妆画法学到了
|
||||
- 皮肤好好啊
|
||||
- 求所有用品的色号
|
||||
- 这个妆适合通勤
|
||||
- 化妆技术真好
|
||||
- 清透自然的妆容
|
||||
- 眉毛画得好棒
|
||||
- 求刷子链接
|
||||
- 这技术我学不会
|
||||
templates:
|
||||
- '{keyword}这个妆容好干净'
|
||||
- '{keyword}是什么色号'
|
||||
- '{keyword}教程很详细'
|
||||
种草:
|
||||
weight: 18
|
||||
enabled: true
|
||||
label: 种草评论
|
||||
comments:
|
||||
- 种草了!
|
||||
- 我也买了同款,真的不错
|
||||
- 已加购物车
|
||||
- 求推荐更多好物
|
||||
- 被安利到了
|
||||
- 这个真的值得买吗?
|
||||
- 用了一个月来反馈,很好用
|
||||
- 性价比很高
|
||||
- 已经下单了
|
||||
- 后悔没早买
|
||||
- 回购第三次了
|
||||
- 包装也很精致
|
||||
- 送人也很合适
|
||||
- 看起来质量不错
|
||||
templates:
|
||||
- 被{keyword}种草了
|
||||
- '{keyword}已加入清单'
|
||||
- "{keyword}真的值得买"
|
||||
美食:
|
||||
weight: 17
|
||||
enabled: true
|
||||
label: 美食评论
|
||||
comments:
|
||||
- 看着好好吃
|
||||
- 求地址
|
||||
- 收藏了,周末去试试
|
||||
- 这个做法很简单,明天就试
|
||||
- 看饿了
|
||||
- 求店铺名字
|
||||
- 人均多少?
|
||||
- 需要提前预约吗?
|
||||
- 拍得好有食欲
|
||||
- 这个搭配绝了
|
||||
- 已经流口水了
|
||||
- 求教程
|
||||
- 看着就很有食欲
|
||||
- 周末安排上了
|
||||
templates:
|
||||
- '{keyword}看着好好吃'
|
||||
- 求{keyword}的店名
|
||||
- '{keyword}的做法很简单'
|
||||
家居:
|
||||
weight: 15
|
||||
enabled: true
|
||||
label: 家居评论
|
||||
comments:
|
||||
- 布置得好温馨
|
||||
- 求家具链接
|
||||
- 这个风格好喜欢
|
||||
- 家的感觉真好
|
||||
- 好会生活啊
|
||||
- 梦想中的家
|
||||
- 这个小细节好用心
|
||||
- 求地毯链接
|
||||
- 装修风格很统一
|
||||
- 收纳做得好棒
|
||||
- 好温馨的小家
|
||||
- 采光真好
|
||||
- 求绿植链接
|
||||
- 这个布局很合理
|
||||
templates:
|
||||
- '{keyword}的布置好温馨'
|
||||
- 求{keyword}的链接
|
||||
- '{keyword}的风格很舒服'
|
||||
旅行:
|
||||
weight: 10
|
||||
enabled: true
|
||||
label: 旅行评论
|
||||
comments:
|
||||
- 风景太美了
|
||||
- 求攻略
|
||||
- 这个地方在哪里?
|
||||
- 收藏了,下次去
|
||||
- 拍照技术真好
|
||||
- 这是哪里呀?
|
||||
- 建议什么季节去?
|
||||
- 住宿方便吗?
|
||||
- 需要门票吗?
|
||||
- 拍得好有感觉
|
||||
- 好想去
|
||||
- 已经列入旅行清单
|
||||
- 有什么推荐的路线吗?
|
||||
templates:
|
||||
- '{keyword}好美,求攻略'
|
||||
- '{keyword}在哪里'
|
||||
- 想去{keyword}很久了
|
||||
Reference in New Issue
Block a user