tiktok-creative-id-to-creatorlisted
Install: claude install-skill njh20030605-code/claude-skills
# Skill: 通过素材ID爬达人ID(TikTok Shop 创意作品)
## 适用场景
在 TikTok Shop 卖家后台「创意作品」(ads-creation/manage-analyze) 页面,已知一批**素材/作品ID(作品ID / creative_id)**,需要批量查出每个ID对应的**达人用户名(用户名)**,并去重、导出到本地。
## 核心思路
页面表格有 38000+ 条数据、每页只显示20条,逐页翻找不可行。关键是利用页面顶部搜索框的**「作品 ID 包含任一项」过滤器**——它支持一次最多 400 个ID,一次性筛出所有目标行,再整表读取。
## 操作步骤
### 1. 定位页面元素
- 用 find 找到搜索/筛选输入框(占位符「输入 [/] 进行搜索和筛选」),拿到它的 ref(如 ref_77)。后续始终用 ref 点击,因为页面滚动后坐标会漂移,而 ref 不受滚动影响。
### 2. 打开「作品ID 包含任一项」批量输入面板
- 点击搜索框 → 输入任意一个ID → 弹出下拉建议「作品 ID 包含任一项: xxx」→ 点击该建议(用 find 拿建议的 ref 再点,比点坐标可靠)。这会应用第一个ID并可打开过滤器编辑面板。
- 面板底部有一个「每行一个」的 textarea 批量粘贴框(最多400个)。
### 3. 批量灌入剩余ID(最快的一招)
- 直接用 form_input 写值 **不生效**(框架不识别)。正确做法是用 javascript_tool 先聚焦该 textarea,再用 document.execCommand('insertText', false, ids.join('\n')) 插入——这会触发框架识别的真实 input 事件。
- 插入后计数可能仍未更新,**在 textarea 内按一次回车 (Return)** 即可把所有行 tokenize 成标签,面板显示「已输入 N 个作品」。
### 4. 应用并读取
- 点「应用」按钮,过滤器生效,表格只剩目标行。
- 把分页从「20/页」改成「50/页」(或更大),让全部结果落在一页。
- 用 get_page_text 一次读取整表,解析出「作品ID → 用户名」映射。
### 5. 去重 + 导出本地
- 用 javascript_tool 构造 CSV(含 BOM \ufeff 保证中文/越南语不乱码),用 Set 对用户名去重,通过 Blob + a.download 触发下载。
## 关键坑与注意
- **搜索框只对单个纯数字ID才提示「作品 ID」建议**;多个ID用空格分隔会被当成「名称」搜索,识别不了ID。所以逐个加要一个一个来,批量加必须走面板 textarea。
- **坐标点击不可靠**:页面会自动滚动导致坐标失效,一律优先用 find + ref 点击。
- **去重逻辑**:系统对重复ID会自动去重(例如47个输入里若有重复,实际匹配数会少于47)。最终唯一用户名数通常远小于ID数(一个达人可能有多条素材)。
- 导出的是用户自己后台的运营数据,非受版权内容,可直接下载。
## 效率对比
- 逐个ID搜索 + 逐个截图:47个ID 约 150+ 次操作
- 批量 textarea 灌入 + 整表读取:约 8 次操作搞定