benchmark-collector 1.5.1 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +44 -0
- package/dist/scripts/feige-history-collect.js +375 -0
- package/dist/scripts/pdd-history-collect.js +499 -0
- package/dist/src/collector.d.ts +7 -1
- package/dist/src/collector.js +63 -20
- package/dist/src/collector.js.map +1 -1
- package/package.json +3 -1
package/README.md
CHANGED
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
- **Cookie 自动注入** — 从本地 Chrome 提取并解密 Cookie,保留登录态(支持 macOS / Windows / Linux)
|
|
12
12
|
- **对话采集** — 支持 DOM 检测和 API 拦截两种模式采集客服对话消息,内置平台预设选择器自动匹配,消息自动去重
|
|
13
13
|
- **平台预设** — 内置常见客服平台(抖店、拼多多等)的对话容器选择器,无需手动指定
|
|
14
|
+
- **历史会话批量采集** — 内置抖音飞鸽 / 拼多多客服后台的历史会话自动采集脚本,免人工操作即可批量拉取后台数据
|
|
14
15
|
- **长时间录制优化** — 写入节流、原子保存、CDP 自动清理,支持数小时连续采集
|
|
15
16
|
- **增量保存** — 每步操作实时保存,进程异常退出也不丢数据
|
|
16
17
|
- **跨平台** — 支持 macOS / Windows / Linux
|
|
@@ -147,6 +148,49 @@ output/处理退款_2026-03-22T10-00-00/
|
|
|
147
148
|
| `*_dom.html` | 页面 DOM 快照(含 iframe 内容) | DOM-based agent 训练 |
|
|
148
149
|
| `*_conversation.json` | 对话消息(角色 / 内容 / 时间戳 / 附件) | 客服对话训练数据(DOM 模式) |
|
|
149
150
|
|
|
151
|
+
## 历史会话批量采集
|
|
152
|
+
|
|
153
|
+
针对抖音飞鸽(抖店)和拼多多商家后台的历史会话页面,提供两个独立的批量采集脚本,自动操作页面、拦截接口、翻页累积数据。
|
|
154
|
+
|
|
155
|
+
### 抖音飞鸽
|
|
156
|
+
|
|
157
|
+
页面:`https://jsls.jinritemai.com/im/shop/main/data/historyConversation`,接口:`fuzzySearchConversation`。
|
|
158
|
+
|
|
159
|
+
```bash
|
|
160
|
+
# 默认运行(自动注入本地 Chrome Cookie,有头模式)
|
|
161
|
+
npm run feige-history
|
|
162
|
+
|
|
163
|
+
# 自定义参数
|
|
164
|
+
npx ts-node scripts/feige-history-collect.ts \
|
|
165
|
+
--max-pages 100 \ # 最大账号列表翻页数(默认 100)
|
|
166
|
+
--delay 1000 \ # 每次翻页间隔,避免限流(默认 1000ms)
|
|
167
|
+
--output ./data \ # 输出目录(默认 output)
|
|
168
|
+
--headless # 无头模式
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
流程:打开页面 → 选"近30天" → 点击查询 → 拦截 `fuzzySearchConversation` → 自动翻页直到采集全部 → 保存到 `output/feige-history_<timestamp>.json`。
|
|
172
|
+
|
|
173
|
+
### 拼多多商家后台
|
|
174
|
+
|
|
175
|
+
页面:`https://mms.pinduoduo.com/mms-chat/search?msfrom=mms_sidenav`,接口:`getMessages`。
|
|
176
|
+
|
|
177
|
+
```bash
|
|
178
|
+
# 默认运行
|
|
179
|
+
npm run pdd-history
|
|
180
|
+
|
|
181
|
+
# 自定义参数
|
|
182
|
+
npx ts-node scripts/pdd-history-collect.ts \
|
|
183
|
+
--max-accounts 200 \ # 最多采集消费者账号数(默认 500)
|
|
184
|
+
--max-msg-pages 20 \ # 每个账号最多翻多少页消息(默认 20)
|
|
185
|
+
--delay 600 \ # 操作间隔(默认 600ms)
|
|
186
|
+
--output ./data \
|
|
187
|
+
--headless
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
流程:打开页面 → 选"近30天" → 点击查询 → 遍历左侧 `.user-item` 消费者账号列表 → 每个账号点击后遍历右侧消息分页 → 拦截 `getMessages` 累积全部消息 → 保存到 `output/pdd-history_<timestamp>.json`。
|
|
191
|
+
|
|
192
|
+
> **前置条件:** 需要先在本地 Chrome 中登录对应的商家后台,脚本会自动从 Chrome 解密提取 Cookie 完成认证。
|
|
193
|
+
|
|
150
194
|
## 回放与调试
|
|
151
195
|
|
|
152
196
|
```bash
|
|
@@ -0,0 +1,375 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
+
if (k2 === undefined) k2 = k;
|
|
5
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
+
}
|
|
9
|
+
Object.defineProperty(o, k2, desc);
|
|
10
|
+
}) : (function(o, m, k, k2) {
|
|
11
|
+
if (k2 === undefined) k2 = k;
|
|
12
|
+
o[k2] = m[k];
|
|
13
|
+
}));
|
|
14
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
15
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
16
|
+
}) : function(o, v) {
|
|
17
|
+
o["default"] = v;
|
|
18
|
+
});
|
|
19
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
20
|
+
var ownKeys = function(o) {
|
|
21
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
22
|
+
var ar = [];
|
|
23
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
24
|
+
return ar;
|
|
25
|
+
};
|
|
26
|
+
return ownKeys(o);
|
|
27
|
+
};
|
|
28
|
+
return function (mod) {
|
|
29
|
+
if (mod && mod.__esModule) return mod;
|
|
30
|
+
var result = {};
|
|
31
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
32
|
+
__setModuleDefault(result, mod);
|
|
33
|
+
return result;
|
|
34
|
+
};
|
|
35
|
+
})();
|
|
36
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
|
+
/**
|
|
38
|
+
* 抖音飞鸽历史会话数据采集脚本
|
|
39
|
+
*
|
|
40
|
+
* 功能:
|
|
41
|
+
* 1. 打开飞鸽数据页面 (historyConversation)
|
|
42
|
+
* 2. 注入 Cookie 实现免登录
|
|
43
|
+
* 3. 点击"查询"触发数据加载
|
|
44
|
+
* 4. 拦截 fuzzySearchConversation 接口响应
|
|
45
|
+
* 5. 自动翻页直到获取所有数据
|
|
46
|
+
* 6. 保存完整数据到本地 JSON 文件
|
|
47
|
+
*
|
|
48
|
+
* 用法:
|
|
49
|
+
* npx ts-node scripts/feige-history-collect.ts [--output <dir>] [--max-pages <n>] [--delay <ms>]
|
|
50
|
+
*/
|
|
51
|
+
const playwright_core_1 = require("playwright-core");
|
|
52
|
+
const fs = __importStar(require("fs"));
|
|
53
|
+
const path = __importStar(require("path"));
|
|
54
|
+
const cookie_extract_1 = require("../src/cookie-extract");
|
|
55
|
+
const PAGE_URL = 'https://jsls.jinritemai.com/im/shop/main/data/historyConversation';
|
|
56
|
+
const API_PATTERN = 'fuzzySearchConversation';
|
|
57
|
+
// ========== CLI 参数解析 ==========
|
|
58
|
+
const args = process.argv.slice(2);
|
|
59
|
+
function getArg(name, defaultValue) {
|
|
60
|
+
const idx = args.indexOf(`--${name}`);
|
|
61
|
+
return idx >= 0 && args[idx + 1] ? args[idx + 1] : defaultValue;
|
|
62
|
+
}
|
|
63
|
+
function hasFlag(name) {
|
|
64
|
+
return args.includes(`--${name}`);
|
|
65
|
+
}
|
|
66
|
+
const outputDir = getArg('output', 'output');
|
|
67
|
+
const maxPages = parseInt(getArg('max-pages', '100'), 10);
|
|
68
|
+
const delayMs = parseInt(getArg('delay', '1000'), 10);
|
|
69
|
+
const headless = hasFlag('headless');
|
|
70
|
+
// ========== 主逻辑 ==========
|
|
71
|
+
class FeigeHistoryCollector {
|
|
72
|
+
constructor() {
|
|
73
|
+
this.allConversations = [];
|
|
74
|
+
this.currentPageData = [];
|
|
75
|
+
this.responseReceived = false;
|
|
76
|
+
this.totalFromApi = 0;
|
|
77
|
+
}
|
|
78
|
+
async run() {
|
|
79
|
+
console.log('飞鸽历史会话数据采集');
|
|
80
|
+
console.log(` 页面: ${PAGE_URL}`);
|
|
81
|
+
console.log(` 最大页数: ${maxPages}`);
|
|
82
|
+
console.log(` 请求间隔: ${delayMs}ms`);
|
|
83
|
+
console.log(` 输出目录: ${outputDir}`);
|
|
84
|
+
console.log('');
|
|
85
|
+
const launchOpts = {
|
|
86
|
+
headless,
|
|
87
|
+
handleSIGINT: false,
|
|
88
|
+
handleSIGTERM: false,
|
|
89
|
+
handleSIGHUP: false,
|
|
90
|
+
};
|
|
91
|
+
let browser;
|
|
92
|
+
try {
|
|
93
|
+
browser = await playwright_core_1.chromium.launch({ ...launchOpts, channel: 'chrome' });
|
|
94
|
+
}
|
|
95
|
+
catch {
|
|
96
|
+
browser = await playwright_core_1.chromium.launch(launchOpts);
|
|
97
|
+
}
|
|
98
|
+
const context = await browser.newContext({ viewport: { width: 1440, height: 900 } });
|
|
99
|
+
// 注入 Cookie
|
|
100
|
+
console.log('🍪 从本地 Chrome 提取 Cookie...');
|
|
101
|
+
const cookies = (0, cookie_extract_1.extractCookiesForUrl)(PAGE_URL);
|
|
102
|
+
if (cookies.length > 0) {
|
|
103
|
+
let injected = 0;
|
|
104
|
+
for (const cookie of cookies) {
|
|
105
|
+
try {
|
|
106
|
+
await context.addCookies([cookie]);
|
|
107
|
+
injected++;
|
|
108
|
+
}
|
|
109
|
+
catch { }
|
|
110
|
+
}
|
|
111
|
+
console.log(` ✅ 已注入 ${injected}/${cookies.length} 个 Cookie`);
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
console.log(' ⚠️ 未找到 Cookie,可能需要先在 Chrome 中登录飞鸽');
|
|
115
|
+
}
|
|
116
|
+
this.page = await context.newPage();
|
|
117
|
+
await this.setupApiIntercept();
|
|
118
|
+
// 导航到页面
|
|
119
|
+
console.log('\n🌐 正在打开飞鸽数据页面...');
|
|
120
|
+
try {
|
|
121
|
+
await this.page.goto(PAGE_URL, { waitUntil: 'networkidle', timeout: 30000 });
|
|
122
|
+
}
|
|
123
|
+
catch (e) {
|
|
124
|
+
console.log(` ⚠️ 页面加载超时,继续尝试: ${e.message?.split('\n')[0]}`);
|
|
125
|
+
}
|
|
126
|
+
await this.page.waitForTimeout(2000);
|
|
127
|
+
// 点击"近30天"快捷按钮,设置时间范围
|
|
128
|
+
console.log('\n📅 点击"近30天"按钮...');
|
|
129
|
+
const rangeSelected = await this.clickLast30DaysButton();
|
|
130
|
+
if (!rangeSelected) {
|
|
131
|
+
console.log(' ⚠️ 未找到"近30天"按钮,使用默认时间范围');
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
console.log(' ✅ 已选择"近30天"');
|
|
135
|
+
await this.page.waitForTimeout(500);
|
|
136
|
+
}
|
|
137
|
+
// 点击"查询"按钮
|
|
138
|
+
console.log('\n🔍 点击查询按钮...');
|
|
139
|
+
this.responseReceived = false;
|
|
140
|
+
const searched = await this.clickSearchButton();
|
|
141
|
+
if (!searched) {
|
|
142
|
+
console.log(' ⚠️ 未找到查询按钮,尝试等待数据自动加载...');
|
|
143
|
+
}
|
|
144
|
+
// 等待第一次 API 响应
|
|
145
|
+
await this.waitForApiResponse(10000);
|
|
146
|
+
if (!this.responseReceived) {
|
|
147
|
+
console.log(' ⚠️ 未收到 API 响应,请确认页面已正确登录');
|
|
148
|
+
await browser.close();
|
|
149
|
+
process.exit(1);
|
|
150
|
+
}
|
|
151
|
+
// 自动翻页
|
|
152
|
+
let pageNum = 1;
|
|
153
|
+
console.log(`\n📄 开始翻页采集 (已获取第 1 页)...`);
|
|
154
|
+
while (pageNum < maxPages) {
|
|
155
|
+
if (this.totalFromApi > 0 && this.allConversations.length >= this.totalFromApi) {
|
|
156
|
+
console.log(` ✅ 已获取全部 ${this.totalFromApi} 条数据`);
|
|
157
|
+
break;
|
|
158
|
+
}
|
|
159
|
+
if (this.currentPageData.length === 0 && pageNum > 1) {
|
|
160
|
+
console.log(` ✅ 当前页无数据,采集结束`);
|
|
161
|
+
break;
|
|
162
|
+
}
|
|
163
|
+
this.responseReceived = false;
|
|
164
|
+
this.currentPageData = [];
|
|
165
|
+
const hasNext = await this.clickNextPage();
|
|
166
|
+
if (!hasNext) {
|
|
167
|
+
console.log(` ✅ 没有下一页了,采集结束`);
|
|
168
|
+
break;
|
|
169
|
+
}
|
|
170
|
+
pageNum++;
|
|
171
|
+
await this.waitForApiResponse(10000);
|
|
172
|
+
if (!this.responseReceived) {
|
|
173
|
+
console.log(` ⚠️ 第 ${pageNum} 页未收到响应,停止翻页`);
|
|
174
|
+
break;
|
|
175
|
+
}
|
|
176
|
+
await this.page.waitForTimeout(delayMs);
|
|
177
|
+
}
|
|
178
|
+
if (pageNum >= maxPages) {
|
|
179
|
+
console.log(` ⚠️ 达到最大页数限制 (${maxPages})`);
|
|
180
|
+
}
|
|
181
|
+
// 保存数据
|
|
182
|
+
const result = {
|
|
183
|
+
conversations: this.allConversations,
|
|
184
|
+
totalPages: pageNum,
|
|
185
|
+
totalConversations: this.allConversations.length,
|
|
186
|
+
collectTime: new Date().toISOString(),
|
|
187
|
+
};
|
|
188
|
+
fs.mkdirSync(outputDir, { recursive: true });
|
|
189
|
+
const timestamp = new Date().toISOString().replace(/[:.]/g, '-').slice(0, 19);
|
|
190
|
+
const outputFile = path.join(outputDir, `feige-history_${timestamp}.json`);
|
|
191
|
+
fs.writeFileSync(outputFile, JSON.stringify(result, null, 2));
|
|
192
|
+
console.log(`\n✅ 采集完成`);
|
|
193
|
+
console.log(` 共 ${this.allConversations.length} 条会话, ${pageNum} 页`);
|
|
194
|
+
console.log(` 文件: ${outputFile}`);
|
|
195
|
+
await browser.close();
|
|
196
|
+
}
|
|
197
|
+
/** 设置 API 拦截 */
|
|
198
|
+
async setupApiIntercept() {
|
|
199
|
+
await this.page.route(`**/${API_PATTERN}*`, async (route) => {
|
|
200
|
+
const response = await route.fetch();
|
|
201
|
+
const body = await response.text();
|
|
202
|
+
try {
|
|
203
|
+
const data = JSON.parse(body);
|
|
204
|
+
const conversations = this.extractConversationList(data);
|
|
205
|
+
this.totalFromApi = this.extractTotal(data);
|
|
206
|
+
if (conversations.length > 0) {
|
|
207
|
+
this.currentPageData = conversations;
|
|
208
|
+
this.allConversations.push(...conversations);
|
|
209
|
+
console.log(` 📡 获取到 ${conversations.length} 条会话 (累计: ${this.allConversations.length}/${this.totalFromApi || '?'})`);
|
|
210
|
+
}
|
|
211
|
+
else {
|
|
212
|
+
this.currentPageData = [];
|
|
213
|
+
console.log(` 📡 该页无数据`);
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
catch (e) {
|
|
217
|
+
console.log(` ⚠️ 解析响应失败: ${e.message}`);
|
|
218
|
+
this.currentPageData = [];
|
|
219
|
+
}
|
|
220
|
+
this.responseReceived = true;
|
|
221
|
+
await route.fulfill({ response });
|
|
222
|
+
});
|
|
223
|
+
}
|
|
224
|
+
/** 等待 API 响应(轮询 responseReceived 标志) */
|
|
225
|
+
async waitForApiResponse(timeout) {
|
|
226
|
+
const start = Date.now();
|
|
227
|
+
while (Date.now() - start < timeout && !this.responseReceived) {
|
|
228
|
+
await this.page.waitForTimeout(200);
|
|
229
|
+
}
|
|
230
|
+
await this.page.waitForTimeout(300);
|
|
231
|
+
}
|
|
232
|
+
/** 点击"近30天"快捷按钮(设置时间范围) */
|
|
233
|
+
async clickLast30DaysButton() {
|
|
234
|
+
const selectors = [
|
|
235
|
+
'button:has-text("近30天")',
|
|
236
|
+
'button:has-text("最近30天")',
|
|
237
|
+
'button:has-text("近三十天")',
|
|
238
|
+
'span:has-text("近30天")',
|
|
239
|
+
'a:has-text("近30天")',
|
|
240
|
+
'div[role="button"]:has-text("近30天")',
|
|
241
|
+
'[class*="tag"]:has-text("近30天")',
|
|
242
|
+
'[class*="quick"]:has-text("近30天")',
|
|
243
|
+
'label:has-text("近30天")',
|
|
244
|
+
// 兜底:包含"30天"文本的可点击元素
|
|
245
|
+
'button:has-text("30天")',
|
|
246
|
+
'span[class*="btn"]:has-text("30天")',
|
|
247
|
+
];
|
|
248
|
+
for (const selector of selectors) {
|
|
249
|
+
try {
|
|
250
|
+
const btn = this.page.locator(selector).first();
|
|
251
|
+
if (await btn.isVisible({ timeout: 1000 })) {
|
|
252
|
+
await btn.click();
|
|
253
|
+
return true;
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
catch { }
|
|
257
|
+
}
|
|
258
|
+
return false;
|
|
259
|
+
}
|
|
260
|
+
/** 点击查询按钮 */
|
|
261
|
+
async clickSearchButton() {
|
|
262
|
+
const selectors = [
|
|
263
|
+
'button:has-text("查询")',
|
|
264
|
+
'button:has-text("搜索")',
|
|
265
|
+
'button:has-text("查找")',
|
|
266
|
+
'.ant-btn-primary:has-text("查询")',
|
|
267
|
+
'.ant-btn-primary:has-text("搜索")',
|
|
268
|
+
'[class*="search"] button',
|
|
269
|
+
'[class*="query"] button',
|
|
270
|
+
'button[type="submit"]',
|
|
271
|
+
];
|
|
272
|
+
for (const selector of selectors) {
|
|
273
|
+
try {
|
|
274
|
+
const btn = this.page.locator(selector).first();
|
|
275
|
+
if (await btn.isVisible({ timeout: 1000 })) {
|
|
276
|
+
await btn.click();
|
|
277
|
+
return true;
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
catch { }
|
|
281
|
+
}
|
|
282
|
+
return false;
|
|
283
|
+
}
|
|
284
|
+
/** 点击下一页按钮 */
|
|
285
|
+
async clickNextPage() {
|
|
286
|
+
const selectors = [
|
|
287
|
+
'.ant-pagination-next:not(.ant-pagination-disabled)',
|
|
288
|
+
'li.ant-pagination-next:not(.ant-pagination-disabled) button',
|
|
289
|
+
'li.ant-pagination-next:not(.ant-pagination-disabled) a',
|
|
290
|
+
'button:has-text("下一页")',
|
|
291
|
+
'a:has-text("下一页")',
|
|
292
|
+
'.arco-pagination-item-next:not(.arco-pagination-item-disabled)',
|
|
293
|
+
'[class*="next"]:not([class*="disabled"]):not([disabled])',
|
|
294
|
+
];
|
|
295
|
+
for (const selector of selectors) {
|
|
296
|
+
try {
|
|
297
|
+
const btn = this.page.locator(selector).first();
|
|
298
|
+
if (await btn.isVisible({ timeout: 1000 })) {
|
|
299
|
+
const disabled = await btn.getAttribute('disabled');
|
|
300
|
+
const ariaDisabled = await btn.getAttribute('aria-disabled');
|
|
301
|
+
if (disabled !== null || ariaDisabled === 'true')
|
|
302
|
+
continue;
|
|
303
|
+
await btn.click();
|
|
304
|
+
return true;
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
catch { }
|
|
308
|
+
}
|
|
309
|
+
return false;
|
|
310
|
+
}
|
|
311
|
+
/** 从 API 响应中提取会话列表 */
|
|
312
|
+
extractConversationList(data) {
|
|
313
|
+
const paths = [
|
|
314
|
+
data?.data?.conversations,
|
|
315
|
+
data?.data?.list,
|
|
316
|
+
data?.data?.data,
|
|
317
|
+
data?.data?.records,
|
|
318
|
+
data?.data?.items,
|
|
319
|
+
data?.result?.conversations,
|
|
320
|
+
data?.result?.list,
|
|
321
|
+
data?.result?.data,
|
|
322
|
+
data?.conversations,
|
|
323
|
+
data?.list,
|
|
324
|
+
];
|
|
325
|
+
for (const p of paths) {
|
|
326
|
+
if (Array.isArray(p) && p.length > 0)
|
|
327
|
+
return p;
|
|
328
|
+
}
|
|
329
|
+
return this.findFirstArray(data, 0);
|
|
330
|
+
}
|
|
331
|
+
/** 递归查找第一个看起来像会话列表的数组 */
|
|
332
|
+
findFirstArray(obj, depth) {
|
|
333
|
+
if (depth > 5 || !obj || typeof obj !== 'object')
|
|
334
|
+
return [];
|
|
335
|
+
if (Array.isArray(obj) && obj.length > 0 && typeof obj[0] === 'object')
|
|
336
|
+
return obj;
|
|
337
|
+
for (const val of Object.values(obj)) {
|
|
338
|
+
if (Array.isArray(val) && val.length > 0 && typeof val[0] === 'object') {
|
|
339
|
+
return val;
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
for (const val of Object.values(obj)) {
|
|
343
|
+
if (val && typeof val === 'object' && !Array.isArray(val)) {
|
|
344
|
+
const found = this.findFirstArray(val, depth + 1);
|
|
345
|
+
if (found.length > 0)
|
|
346
|
+
return found;
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
return [];
|
|
350
|
+
}
|
|
351
|
+
/** 从响应中提取总数 */
|
|
352
|
+
extractTotal(data) {
|
|
353
|
+
const paths = [
|
|
354
|
+
data?.data?.total,
|
|
355
|
+
data?.data?.totalCount,
|
|
356
|
+
data?.data?.total_count,
|
|
357
|
+
data?.data?.pagination?.total,
|
|
358
|
+
data?.data?.page_info?.total,
|
|
359
|
+
data?.result?.total,
|
|
360
|
+
data?.total,
|
|
361
|
+
];
|
|
362
|
+
for (const p of paths) {
|
|
363
|
+
if (typeof p === 'number' && p > 0)
|
|
364
|
+
return p;
|
|
365
|
+
}
|
|
366
|
+
return 0;
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
// ========== 启动 ==========
|
|
370
|
+
const collector = new FeigeHistoryCollector();
|
|
371
|
+
collector.run().catch((err) => {
|
|
372
|
+
console.error('采集出错:', err);
|
|
373
|
+
process.exit(1);
|
|
374
|
+
});
|
|
375
|
+
//# sourceMappingURL=feige-history-collect.js.map
|
|
@@ -0,0 +1,499 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
+
if (k2 === undefined) k2 = k;
|
|
5
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
+
}
|
|
9
|
+
Object.defineProperty(o, k2, desc);
|
|
10
|
+
}) : (function(o, m, k, k2) {
|
|
11
|
+
if (k2 === undefined) k2 = k;
|
|
12
|
+
o[k2] = m[k];
|
|
13
|
+
}));
|
|
14
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
15
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
16
|
+
}) : function(o, v) {
|
|
17
|
+
o["default"] = v;
|
|
18
|
+
});
|
|
19
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
20
|
+
var ownKeys = function(o) {
|
|
21
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
22
|
+
var ar = [];
|
|
23
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
24
|
+
return ar;
|
|
25
|
+
};
|
|
26
|
+
return ownKeys(o);
|
|
27
|
+
};
|
|
28
|
+
return function (mod) {
|
|
29
|
+
if (mod && mod.__esModule) return mod;
|
|
30
|
+
var result = {};
|
|
31
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
32
|
+
__setModuleDefault(result, mod);
|
|
33
|
+
return result;
|
|
34
|
+
};
|
|
35
|
+
})();
|
|
36
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
|
+
/**
|
|
38
|
+
* 拼多多客服后台历史会话数据采集脚本
|
|
39
|
+
*
|
|
40
|
+
* 页面:https://mms.pinduoduo.com/mms-chat/search?msfrom=mms_sidenav
|
|
41
|
+
* 接口:POST https://mms.pinduoduo.com/latitude/search/message/getMessages
|
|
42
|
+
*
|
|
43
|
+
* 实际页面结构(已通过浏览器验证):
|
|
44
|
+
* - 顶部表单:查询方式 / 客服账号 / 时间 / 查询按钮
|
|
45
|
+
* - 时间输入框 placeholder="开始时间 ~ 结束时间", readonly
|
|
46
|
+
* - 时间浮层快捷按钮:今天 / 近7天 / 近30天 (点击后自动应用并关闭浮层,无需确认)
|
|
47
|
+
* - 查询按钮:button.BTN_primary_xxx 文字"查询"
|
|
48
|
+
* - 查询结果:左侧账号列表 .cs-list > .user-item (每页 10 条) + 右侧 .message-list
|
|
49
|
+
* - 分页器:.PGT_outerWrapper_xxx,下一页 .PGT_next_xxx
|
|
50
|
+
* - 接口返回的消息一次性全量渲染到 .message-list,无懒加载
|
|
51
|
+
*
|
|
52
|
+
* 流程:
|
|
53
|
+
* 1. 注入 Cookie 实现免登录
|
|
54
|
+
* 2. 打开页面
|
|
55
|
+
* 3. 点击时间输入框 → 点击"近30天" (自动应用 + 关闭浮层)
|
|
56
|
+
* 4. 点击"查询" → 左侧出现 .user-item 列表
|
|
57
|
+
* 5. 遍历当前页所有 .user-item,逐个点击 → 拦截 getMessages 响应
|
|
58
|
+
* 6. 点击分页器"下一页",重复步骤 5,直到没有下一页
|
|
59
|
+
* 7. 增量保存到 output/pdd-history_<timestamp>.json
|
|
60
|
+
*
|
|
61
|
+
* 用法:
|
|
62
|
+
* npx ts-node scripts/pdd-history-collect.ts [--output <dir>] [--max-accounts <n>]
|
|
63
|
+
* [--delay <ms>] [--headless]
|
|
64
|
+
*/
|
|
65
|
+
const playwright_core_1 = require("playwright-core");
|
|
66
|
+
const fs = __importStar(require("fs"));
|
|
67
|
+
const path = __importStar(require("path"));
|
|
68
|
+
const cookie_extract_1 = require("../src/cookie-extract");
|
|
69
|
+
const PAGE_URL = 'https://mms.pinduoduo.com/mms-chat/search?msfrom=mms_sidenav';
|
|
70
|
+
const API_PATTERN = '/latitude/search/message/getMessages';
|
|
71
|
+
// ========== CLI 参数 ==========
|
|
72
|
+
const args = process.argv.slice(2);
|
|
73
|
+
const getArg = (name, def) => {
|
|
74
|
+
const idx = args.indexOf(`--${name}`);
|
|
75
|
+
return idx >= 0 && args[idx + 1] ? args[idx + 1] : def;
|
|
76
|
+
};
|
|
77
|
+
const hasFlag = (name) => args.includes(`--${name}`);
|
|
78
|
+
const outputDir = getArg('output', 'output');
|
|
79
|
+
const maxAccounts = parseInt(getArg('max-accounts', '500'), 10);
|
|
80
|
+
const maxMsgPages = parseInt(getArg('max-msg-pages', '20'), 10);
|
|
81
|
+
const delayMs = parseInt(getArg('delay', '600'), 10);
|
|
82
|
+
const headless = hasFlag('headless');
|
|
83
|
+
class PddHistoryCollector {
|
|
84
|
+
constructor() {
|
|
85
|
+
this.currentMessages = new Map(); // 当前账号的消息(按 msg_id 去重)
|
|
86
|
+
this.currentResponseCount = 0;
|
|
87
|
+
this.results = [];
|
|
88
|
+
this.outputFile = '';
|
|
89
|
+
}
|
|
90
|
+
async run() {
|
|
91
|
+
console.log('拼多多客服历史会话采集');
|
|
92
|
+
console.log(` 页面: ${PAGE_URL}`);
|
|
93
|
+
console.log(` 最大账号数: ${maxAccounts}`);
|
|
94
|
+
console.log(` 每账号最大消息分页: ${maxMsgPages}`);
|
|
95
|
+
console.log(` 请求间隔: ${delayMs}ms`);
|
|
96
|
+
console.log(` 输出目录: ${outputDir}`);
|
|
97
|
+
console.log('');
|
|
98
|
+
fs.mkdirSync(outputDir, { recursive: true });
|
|
99
|
+
const ts = new Date().toISOString().replace(/[:.]/g, '-').slice(0, 19);
|
|
100
|
+
this.outputFile = path.join(outputDir, `pdd-history_${ts}.json`);
|
|
101
|
+
const launchOpts = {
|
|
102
|
+
headless,
|
|
103
|
+
handleSIGINT: false,
|
|
104
|
+
handleSIGTERM: false,
|
|
105
|
+
handleSIGHUP: false,
|
|
106
|
+
};
|
|
107
|
+
let browser;
|
|
108
|
+
try {
|
|
109
|
+
browser = await playwright_core_1.chromium.launch({ ...launchOpts, channel: 'chrome' });
|
|
110
|
+
}
|
|
111
|
+
catch {
|
|
112
|
+
browser = await playwright_core_1.chromium.launch(launchOpts);
|
|
113
|
+
}
|
|
114
|
+
const context = await browser.newContext({ viewport: { width: 1440, height: 900 } });
|
|
115
|
+
// Cookie 注入
|
|
116
|
+
console.log('🍪 从本地 Chrome 提取 Cookie...');
|
|
117
|
+
const cookies = (0, cookie_extract_1.extractCookiesForUrl)(PAGE_URL);
|
|
118
|
+
if (cookies.length > 0) {
|
|
119
|
+
let injected = 0;
|
|
120
|
+
for (const c of cookies) {
|
|
121
|
+
try {
|
|
122
|
+
await context.addCookies([c]);
|
|
123
|
+
injected++;
|
|
124
|
+
}
|
|
125
|
+
catch { }
|
|
126
|
+
}
|
|
127
|
+
console.log(` ✅ 已注入 ${injected}/${cookies.length} 个 Cookie`);
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
console.log(' ⚠️ 未找到 Cookie,请先在 Chrome 中登录拼多多商家后台');
|
|
131
|
+
}
|
|
132
|
+
this.page = await context.newPage();
|
|
133
|
+
await this.setupApiIntercept();
|
|
134
|
+
// 1. 导航
|
|
135
|
+
console.log('\n🌐 打开页面...');
|
|
136
|
+
try {
|
|
137
|
+
await this.page.goto(PAGE_URL, { waitUntil: 'networkidle', timeout: 30000 });
|
|
138
|
+
}
|
|
139
|
+
catch (e) {
|
|
140
|
+
console.log(` ⚠️ 加载超时,继续: ${e.message?.split('\n')[0]}`);
|
|
141
|
+
}
|
|
142
|
+
await this.page.waitForTimeout(2000);
|
|
143
|
+
// 2. 选择"近30天"
|
|
144
|
+
console.log('\n📅 选择时间范围"近30天"...');
|
|
145
|
+
const ok30 = await this.selectLast30Days();
|
|
146
|
+
if (!ok30) {
|
|
147
|
+
console.log(' ⚠️ 时间选择失败,使用页面默认');
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
console.log(' ✅ 已选择近30天');
|
|
151
|
+
}
|
|
152
|
+
// 3. 点击查询
|
|
153
|
+
console.log('\n🔍 点击查询按钮...');
|
|
154
|
+
const searched = await this.clickSearchButton();
|
|
155
|
+
if (!searched) {
|
|
156
|
+
console.log(' ❌ 未找到查询按钮');
|
|
157
|
+
await browser.close();
|
|
158
|
+
process.exit(1);
|
|
159
|
+
}
|
|
160
|
+
// 等待左侧 user-item 列表出现
|
|
161
|
+
try {
|
|
162
|
+
await this.page.waitForSelector('.user-item', { timeout: 15000 });
|
|
163
|
+
}
|
|
164
|
+
catch {
|
|
165
|
+
console.log(' ⚠️ 等待 .user-item 超时,可能查询无结果');
|
|
166
|
+
}
|
|
167
|
+
await this.page.waitForTimeout(1500);
|
|
168
|
+
// 4. 遍历左侧账号列表(左侧没有分页器,可能通过滚动加载;这里先取全部已渲染项,
|
|
169
|
+
// 若数量增长则继续滚动加载更多)
|
|
170
|
+
console.log('\n👥 开始遍历消费者账号...');
|
|
171
|
+
let processed = 0;
|
|
172
|
+
let lastSeenCount = 0;
|
|
173
|
+
let stableRounds = 0;
|
|
174
|
+
while (processed < maxAccounts) {
|
|
175
|
+
const itemCount = await this.page.locator('.user-item').count();
|
|
176
|
+
if (itemCount === 0) {
|
|
177
|
+
console.log(` ⚠️ 无账号,结束`);
|
|
178
|
+
break;
|
|
179
|
+
}
|
|
180
|
+
// 处理新出现的账号
|
|
181
|
+
for (let i = lastSeenCount; i < itemCount && processed < maxAccounts; i++) {
|
|
182
|
+
await this.processOneAccount(i, 1, processed + 1);
|
|
183
|
+
processed++;
|
|
184
|
+
this.saveResults();
|
|
185
|
+
await this.page.waitForTimeout(delayMs);
|
|
186
|
+
}
|
|
187
|
+
lastSeenCount = itemCount;
|
|
188
|
+
if (processed >= maxAccounts) {
|
|
189
|
+
console.log(` ⚠️ 达到最大账号数限制 (${maxAccounts})`);
|
|
190
|
+
break;
|
|
191
|
+
}
|
|
192
|
+
// 滚动 .cs-list 到底部尝试加载更多
|
|
193
|
+
const grew = await this.scrollAccountListAndCheck();
|
|
194
|
+
if (!grew) {
|
|
195
|
+
stableRounds++;
|
|
196
|
+
if (stableRounds >= 2) {
|
|
197
|
+
console.log(' ✅ 账号列表无更多项,采集结束');
|
|
198
|
+
break;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
else {
|
|
202
|
+
stableRounds = 0;
|
|
203
|
+
}
|
|
204
|
+
await this.page.waitForTimeout(800);
|
|
205
|
+
}
|
|
206
|
+
this.saveResults();
|
|
207
|
+
const total = this.results.reduce((s, r) => s + r.messages.length, 0);
|
|
208
|
+
console.log(`\n✅ 采集完成`);
|
|
209
|
+
console.log(` 共 ${this.results.length} 个账号, ${total} 条消息`);
|
|
210
|
+
console.log(` 文件: ${this.outputFile}`);
|
|
211
|
+
await browser.close();
|
|
212
|
+
}
|
|
213
|
+
// ========== 单个账号 ==========
|
|
214
|
+
async processOneAccount(itemIdx, pageIdx, globalIdx) {
|
|
215
|
+
this.currentMessages.clear();
|
|
216
|
+
this.currentResponseCount = 0;
|
|
217
|
+
const items = this.page.locator('.user-item');
|
|
218
|
+
if (itemIdx >= (await items.count()))
|
|
219
|
+
return;
|
|
220
|
+
const item = items.nth(itemIdx);
|
|
221
|
+
const label = (await item.innerText().catch(() => '')).trim().replace(/\s+/g, ' ').slice(0, 80);
|
|
222
|
+
console.log(`\n[#${globalIdx} 页${pageIdx}/项${itemIdx + 1}] ${label || '(无文本)'}`);
|
|
223
|
+
try {
|
|
224
|
+
await item.scrollIntoViewIfNeeded({ timeout: 3000 });
|
|
225
|
+
}
|
|
226
|
+
catch { }
|
|
227
|
+
// 第一页第一个账号默认已被选中并已加载消息(等于无需点击就有响应)。
|
|
228
|
+
// 我们仍然点击一次,强制重新触发请求,以保证拦截能稳定捕获。
|
|
229
|
+
try {
|
|
230
|
+
await item.click({ timeout: 5000 });
|
|
231
|
+
}
|
|
232
|
+
catch (e) {
|
|
233
|
+
console.log(` ⚠️ 点击失败: ${e.message?.split('\n')[0]}`);
|
|
234
|
+
return;
|
|
235
|
+
}
|
|
236
|
+
// 等 getMessages 响应(首页第一项可能没有新请求 — 因为页面初始化时已请求过;做兜底)
|
|
237
|
+
const got = await this.waitForResponse(8000);
|
|
238
|
+
if (!got && pageIdx === 1 && itemIdx === 0) {
|
|
239
|
+
console.log(` ℹ️ 首项无新请求,跳过`);
|
|
240
|
+
}
|
|
241
|
+
// 遍历该账号的消息分页(拼多多右侧消息分页,每个账号页数不同)
|
|
242
|
+
const msgPagesVisited = await this.iterateMessagePages();
|
|
243
|
+
const messages = Array.from(this.currentMessages.values());
|
|
244
|
+
this.results.push({
|
|
245
|
+
accountKey: `p${pageIdx}_i${itemIdx + 1}`,
|
|
246
|
+
accountLabel: label,
|
|
247
|
+
pageIndex: pageIdx,
|
|
248
|
+
itemIndex: itemIdx + 1,
|
|
249
|
+
messagePagesVisited: msgPagesVisited,
|
|
250
|
+
messages,
|
|
251
|
+
responseCount: this.currentResponseCount,
|
|
252
|
+
});
|
|
253
|
+
console.log(` ✅ ${messages.length} 条消息 (${this.currentResponseCount} 次响应)`);
|
|
254
|
+
}
|
|
255
|
+
// ========== 时间选择 ==========
|
|
256
|
+
/** 选择"近30天"(点击输入框 → 点近30天,浮层会自动关闭) */
|
|
257
|
+
async selectLast30Days() {
|
|
258
|
+
const input = this.page.locator('input[placeholder*="开始时间"][readonly]').first();
|
|
259
|
+
try {
|
|
260
|
+
if (!(await input.isVisible({ timeout: 3000 })))
|
|
261
|
+
return false;
|
|
262
|
+
await input.click({ timeout: 2000 });
|
|
263
|
+
}
|
|
264
|
+
catch {
|
|
265
|
+
return false;
|
|
266
|
+
}
|
|
267
|
+
// 等浮层
|
|
268
|
+
try {
|
|
269
|
+
await this.page.waitForSelector('.RPR_quickPickerWrapper_1198e34, [class*="RPR_quickPickerWrapper"]', { timeout: 3000 });
|
|
270
|
+
}
|
|
271
|
+
catch {
|
|
272
|
+
// 浮层 class 可能变化,继续尝试找按钮
|
|
273
|
+
}
|
|
274
|
+
await this.page.waitForTimeout(300);
|
|
275
|
+
// 点击"近30天"
|
|
276
|
+
const last30 = this.page.locator('button', { hasText: /^近30天$/ }).first();
|
|
277
|
+
try {
|
|
278
|
+
if (await last30.isVisible({ timeout: 2000 })) {
|
|
279
|
+
await last30.click({ timeout: 2000 });
|
|
280
|
+
await this.page.waitForTimeout(400);
|
|
281
|
+
return true;
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
catch { }
|
|
285
|
+
return false;
|
|
286
|
+
}
|
|
287
|
+
// ========== 查询按钮 ==========
|
|
288
|
+
async clickSearchButton() {
|
|
289
|
+
// 优先 BTN_primary 中的"查询"
|
|
290
|
+
const candidates = [
|
|
291
|
+
this.page.locator('button[class*="BTN_primary"]', { hasText: /^查询$/ }),
|
|
292
|
+
this.page.locator('button', { hasText: /^查询$/ }),
|
|
293
|
+
];
|
|
294
|
+
for (const c of candidates) {
|
|
295
|
+
try {
|
|
296
|
+
const btn = c.first();
|
|
297
|
+
if (await btn.isVisible({ timeout: 1500 })) {
|
|
298
|
+
await btn.click({ timeout: 2000 });
|
|
299
|
+
return true;
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
catch { }
|
|
303
|
+
}
|
|
304
|
+
return false;
|
|
305
|
+
}
|
|
306
|
+
// ========== 左侧账号列表滚动加载 ==========
|
|
307
|
+
/** 滚动 .cs-list 到底部,返回是否新增了项 */
|
|
308
|
+
async scrollAccountListAndCheck() {
|
|
309
|
+
return await this.page.evaluate(() => {
|
|
310
|
+
const list = document.querySelector('.cs-list');
|
|
311
|
+
if (!list)
|
|
312
|
+
return false;
|
|
313
|
+
const before = list.querySelectorAll('.user-item').length;
|
|
314
|
+
list.scrollTop = list.scrollHeight;
|
|
315
|
+
return new Promise(resolve => {
|
|
316
|
+
setTimeout(() => {
|
|
317
|
+
const after = list.querySelectorAll('.user-item').length;
|
|
318
|
+
resolve(after > before);
|
|
319
|
+
}, 1500);
|
|
320
|
+
});
|
|
321
|
+
});
|
|
322
|
+
}
|
|
323
|
+
// ========== 右侧消息分页(每个账号内部) ==========
|
|
324
|
+
/**
|
|
325
|
+
* 遍历当前选中账号的所有消息分页。
|
|
326
|
+
* 拼多多分页器结构:
|
|
327
|
+
* - .table-section-right-footer 内的 [class*="PGT_outerWrapper"]
|
|
328
|
+
* - 当前激活:[class*="PGT_pagerItemActive"]
|
|
329
|
+
* - 下一页按钮:[class*="PGT_next"],禁用时含 PGT_disabled
|
|
330
|
+
*
|
|
331
|
+
* 策略:循环点击下一页,直到 next 按钮 disabled 或没有新响应。
|
|
332
|
+
* 返回访问过的页数(含第 1 页)。
|
|
333
|
+
*/
|
|
334
|
+
async iterateMessagePages() {
|
|
335
|
+
let visited = 1; // 当前已经在第 1 页
|
|
336
|
+
while (visited < maxMsgPages) {
|
|
337
|
+
// 检查右侧分页器是否存在 + 下一页是否可用
|
|
338
|
+
const status = await this.page.evaluate(() => {
|
|
339
|
+
const footer = document.querySelector('.table-section-right-footer');
|
|
340
|
+
if (!footer)
|
|
341
|
+
return { exists: false, disabled: true };
|
|
342
|
+
const next = footer.querySelector('[class*="PGT_next"]');
|
|
343
|
+
if (!next)
|
|
344
|
+
return { exists: false, disabled: true };
|
|
345
|
+
const cls = next.className || '';
|
|
346
|
+
const ariaDisabled = next.getAttribute('aria-disabled');
|
|
347
|
+
const r = next.getBoundingClientRect();
|
|
348
|
+
return {
|
|
349
|
+
exists: r.width > 0 && r.height > 0,
|
|
350
|
+
disabled: /PGT_disabled|disabled/.test(cls) || ariaDisabled === 'true',
|
|
351
|
+
};
|
|
352
|
+
});
|
|
353
|
+
if (!status.exists || status.disabled)
|
|
354
|
+
break;
|
|
355
|
+
// 点击下一页
|
|
356
|
+
const baseline = this.currentResponseCount;
|
|
357
|
+
const clicked = await this.page.evaluate(() => {
|
|
358
|
+
const footer = document.querySelector('.table-section-right-footer');
|
|
359
|
+
if (!footer)
|
|
360
|
+
return false;
|
|
361
|
+
const next = footer.querySelector('[class*="PGT_next"]');
|
|
362
|
+
if (!next)
|
|
363
|
+
return false;
|
|
364
|
+
next.click();
|
|
365
|
+
return true;
|
|
366
|
+
});
|
|
367
|
+
if (!clicked)
|
|
368
|
+
break;
|
|
369
|
+
// 等响应
|
|
370
|
+
const got = await this.waitForResponseSince(baseline, 8000);
|
|
371
|
+
if (!got) {
|
|
372
|
+
// 如果没新响应(可能数据已缓存或异常),仍然让 visited++ 但只重试 1 次
|
|
373
|
+
console.log(` ⚠️ 第 ${visited + 1} 页消息无响应,停止该账号翻页`);
|
|
374
|
+
break;
|
|
375
|
+
}
|
|
376
|
+
visited++;
|
|
377
|
+
console.log(` 📄 已翻到消息第 ${visited} 页`);
|
|
378
|
+
await this.page.waitForTimeout(delayMs);
|
|
379
|
+
}
|
|
380
|
+
if (visited >= maxMsgPages) {
|
|
381
|
+
console.log(` ⚠️ 该账号达到消息分页上限 ${maxMsgPages},停止翻页`);
|
|
382
|
+
}
|
|
383
|
+
return visited;
|
|
384
|
+
}
|
|
385
|
+
// ========== API 拦截 ==========
|
|
386
|
+
async setupApiIntercept() {
|
|
387
|
+
await this.page.route(`**${API_PATTERN}*`, async (route) => {
|
|
388
|
+
const response = await route.fetch();
|
|
389
|
+
const body = await response.text();
|
|
390
|
+
try {
|
|
391
|
+
const data = JSON.parse(body);
|
|
392
|
+
const messages = this.extractMessages(data);
|
|
393
|
+
for (const m of messages) {
|
|
394
|
+
const id = this.getMessageId(m);
|
|
395
|
+
if (id && !this.currentMessages.has(id)) {
|
|
396
|
+
this.currentMessages.set(id, m);
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
this.currentResponseCount++;
|
|
400
|
+
if (messages.length > 0) {
|
|
401
|
+
console.log(` 📡 +${messages.length} 条消息 (累计 ${this.currentMessages.size})`);
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
catch (e) {
|
|
405
|
+
console.log(` ⚠️ 解析响应失败: ${e.message?.split('\n')[0]}`);
|
|
406
|
+
}
|
|
407
|
+
await route.fulfill({ response });
|
|
408
|
+
});
|
|
409
|
+
}
|
|
410
|
+
/** 等待至少一次新的 getMessages 响应 */
|
|
411
|
+
async waitForResponse(timeout) {
|
|
412
|
+
return this.waitForResponseSince(this.currentResponseCount, timeout);
|
|
413
|
+
}
|
|
414
|
+
/** 从指定 baseline 等待新响应 */
|
|
415
|
+
async waitForResponseSince(baseline, timeout) {
|
|
416
|
+
const start = Date.now();
|
|
417
|
+
while (Date.now() - start < timeout) {
|
|
418
|
+
if (this.currentResponseCount > baseline) {
|
|
419
|
+
await this.page.waitForTimeout(300); // 等数据落地
|
|
420
|
+
return true;
|
|
421
|
+
}
|
|
422
|
+
await this.page.waitForTimeout(150);
|
|
423
|
+
}
|
|
424
|
+
return false;
|
|
425
|
+
}
|
|
426
|
+
// ========== 响应解析 ==========
|
|
427
|
+
extractMessages(data) {
|
|
428
|
+
const paths = [
|
|
429
|
+
data?.result?.messages,
|
|
430
|
+
data?.result?.list,
|
|
431
|
+
data?.result?.data,
|
|
432
|
+
data?.result?.message_list,
|
|
433
|
+
data?.result?.records,
|
|
434
|
+
data?.result?.msg_list,
|
|
435
|
+
data?.data?.messages,
|
|
436
|
+
data?.data?.list,
|
|
437
|
+
data?.data?.message_list,
|
|
438
|
+
data?.messages,
|
|
439
|
+
data?.list,
|
|
440
|
+
];
|
|
441
|
+
for (const p of paths) {
|
|
442
|
+
if (Array.isArray(p) && p.length > 0)
|
|
443
|
+
return p;
|
|
444
|
+
}
|
|
445
|
+
return this.findMessageArray(data, 0);
|
|
446
|
+
}
|
|
447
|
+
findMessageArray(obj, depth) {
|
|
448
|
+
if (depth > 6 || !obj || typeof obj !== 'object')
|
|
449
|
+
return [];
|
|
450
|
+
if (Array.isArray(obj) && obj.length > 0 && this.looksLikeMessages(obj))
|
|
451
|
+
return obj;
|
|
452
|
+
for (const val of Object.values(obj)) {
|
|
453
|
+
if (Array.isArray(val) && val.length > 0 && this.looksLikeMessages(val)) {
|
|
454
|
+
return val;
|
|
455
|
+
}
|
|
456
|
+
}
|
|
457
|
+
for (const val of Object.values(obj)) {
|
|
458
|
+
if (val && typeof val === 'object' && !Array.isArray(val)) {
|
|
459
|
+
const found = this.findMessageArray(val, depth + 1);
|
|
460
|
+
if (found.length > 0)
|
|
461
|
+
return found;
|
|
462
|
+
}
|
|
463
|
+
}
|
|
464
|
+
return [];
|
|
465
|
+
}
|
|
466
|
+
looksLikeMessages(arr) {
|
|
467
|
+
const sample = arr[0];
|
|
468
|
+
if (!sample || typeof sample !== 'object')
|
|
469
|
+
return false;
|
|
470
|
+
return (sample.msg_id !== undefined ||
|
|
471
|
+
sample.message_id !== undefined ||
|
|
472
|
+
sample.msgId !== undefined ||
|
|
473
|
+
sample.id !== undefined ||
|
|
474
|
+
sample.content !== undefined ||
|
|
475
|
+
sample.from !== undefined ||
|
|
476
|
+
sample.ts !== undefined);
|
|
477
|
+
}
|
|
478
|
+
getMessageId(m) {
|
|
479
|
+
return String(m?.msg_id ?? m?.message_id ?? m?.msgId ?? m?.id ?? m?.seq ?? m?.sequence ??
|
|
480
|
+
`auto_${JSON.stringify(m).slice(0, 200)}`);
|
|
481
|
+
}
|
|
482
|
+
// ========== 持久化 ==========
|
|
483
|
+
saveResults() {
|
|
484
|
+
const data = {
|
|
485
|
+
collectTime: new Date().toISOString(),
|
|
486
|
+
totalAccounts: this.results.length,
|
|
487
|
+
totalMessages: this.results.reduce((s, r) => s + r.messages.length, 0),
|
|
488
|
+
accounts: this.results,
|
|
489
|
+
};
|
|
490
|
+
fs.writeFileSync(this.outputFile, JSON.stringify(data, null, 2));
|
|
491
|
+
}
|
|
492
|
+
}
|
|
493
|
+
// ========== 启动 ==========
|
|
494
|
+
const collector = new PddHistoryCollector();
|
|
495
|
+
collector.run().catch((err) => {
|
|
496
|
+
console.error('采集出错:', err);
|
|
497
|
+
process.exit(1);
|
|
498
|
+
});
|
|
499
|
+
//# sourceMappingURL=pdd-history-collect.js.map
|
package/dist/src/collector.d.ts
CHANGED
|
@@ -16,9 +16,10 @@ export declare class BenchmarkCollector {
|
|
|
16
16
|
private processing;
|
|
17
17
|
private queueDone;
|
|
18
18
|
private queueDoneResolve;
|
|
19
|
+
private userChatSelector?;
|
|
19
20
|
private chatSelector?;
|
|
20
21
|
private lastConversationHash;
|
|
21
|
-
private
|
|
22
|
+
private lastDetectionKey;
|
|
22
23
|
private chatApiPattern?;
|
|
23
24
|
private apiCapture?;
|
|
24
25
|
private lastHistoryFileName?;
|
|
@@ -45,6 +46,11 @@ export declare class BenchmarkCollector {
|
|
|
45
46
|
}>;
|
|
46
47
|
/** 手动触发一次采集 */
|
|
47
48
|
manualCapture(actionName: string, detail?: string): Promise<void>;
|
|
49
|
+
/**
|
|
50
|
+
* 根据当前 URL 重新匹配 chat-selector 并更新 this.chatSelector。
|
|
51
|
+
* 用户已显式指定 --chat-selector 时不覆盖。
|
|
52
|
+
*/
|
|
53
|
+
private refreshChatSelector;
|
|
48
54
|
/**
|
|
49
55
|
* 按 URL 提取并注入 Cookie。
|
|
50
56
|
* 自动去重:同一根域名只提取一次(避免重复调用 Python 脚本)。
|
package/dist/src/collector.js
CHANGED
|
@@ -76,7 +76,7 @@ class BenchmarkCollector {
|
|
|
76
76
|
this.queueDone = Promise.resolve();
|
|
77
77
|
this.queueDoneResolve = null;
|
|
78
78
|
this.lastConversationHash = '';
|
|
79
|
-
this.
|
|
79
|
+
this.lastDetectionKey = ''; // 上次输出的检测日志 key(method+selector),变化时重新打印
|
|
80
80
|
// 是否注入 Cookie(默认关闭,--cookie 开启)
|
|
81
81
|
this.injectCookie = false;
|
|
82
82
|
// 已注入过 Cookie 的域名集合(避免重复提取)
|
|
@@ -90,8 +90,11 @@ class BenchmarkCollector {
|
|
|
90
90
|
this.mediaUrlToFile = new Map();
|
|
91
91
|
this.lastSaveTime = 0;
|
|
92
92
|
this.savePending = false;
|
|
93
|
-
//
|
|
94
|
-
this.
|
|
93
|
+
// 记录用户显式指定的 chatSelector(--chat-selector 参数)
|
|
94
|
+
this.userChatSelector = options?.chatSelector;
|
|
95
|
+
// 优先使用用户指定的 chatSelector,否则根据 startUrl 自动匹配平台预设
|
|
96
|
+
// 注意:未指定时,后续会随导航的 URL 动态更新(见 refreshChatSelector)
|
|
97
|
+
this.chatSelector = this.userChatSelector || matchChatSelector(startUrl);
|
|
95
98
|
this.chatApiPattern = options?.chatApiPattern;
|
|
96
99
|
this.injectCookie = options?.cookie ?? false;
|
|
97
100
|
this.enableTrace = options?.trace ?? false;
|
|
@@ -184,6 +187,15 @@ class BenchmarkCollector {
|
|
|
184
187
|
console.log(` 模式: 自动注入 Cookie`);
|
|
185
188
|
if (this.chatApiPattern)
|
|
186
189
|
console.log(` 对话接口: 监听匹配 "${this.chatApiPattern}" 的 API 响应`);
|
|
190
|
+
if (this.userChatSelector) {
|
|
191
|
+
console.log(` 对话选择器: ${this.userChatSelector} (用户指定)`);
|
|
192
|
+
}
|
|
193
|
+
else if (this.chatSelector) {
|
|
194
|
+
console.log(` 对话选择器: ${this.chatSelector} (按 startUrl 自动匹配)`);
|
|
195
|
+
}
|
|
196
|
+
else {
|
|
197
|
+
console.log(` 对话选择器: 未匹配,将随导航 URL 动态切换或使用评分检测`);
|
|
198
|
+
}
|
|
187
199
|
console.log(` 按 Ctrl+C 结束采集\n`);
|
|
188
200
|
let browserDisconnected = false;
|
|
189
201
|
await new Promise((resolve) => {
|
|
@@ -226,6 +238,26 @@ class BenchmarkCollector {
|
|
|
226
238
|
});
|
|
227
239
|
await this.waitForQueueDrain();
|
|
228
240
|
}
|
|
241
|
+
/**
|
|
242
|
+
* 根据当前 URL 重新匹配 chat-selector 并更新 this.chatSelector。
|
|
243
|
+
* 用户已显式指定 --chat-selector 时不覆盖。
|
|
244
|
+
*/
|
|
245
|
+
refreshChatSelector(url) {
|
|
246
|
+
if (this.userChatSelector)
|
|
247
|
+
return;
|
|
248
|
+
const matched = matchChatSelector(url);
|
|
249
|
+
if (matched && matched !== this.chatSelector) {
|
|
250
|
+
console.log(` 💬 Chat selector 切换: ${matched} (URL: ${url})`);
|
|
251
|
+
this.chatSelector = matched;
|
|
252
|
+
this.lastDetectionKey = ''; // 允许下次采集时重新输出诊断
|
|
253
|
+
}
|
|
254
|
+
else if (!matched && this.chatSelector && this.chatSelector !== matchChatSelector(this.startUrl)) {
|
|
255
|
+
// 离开映射平台到非映射页面时清空,避免使用过期 selector
|
|
256
|
+
console.log(` 💬 Chat selector 重置 (URL: ${url} 无匹配)`);
|
|
257
|
+
this.chatSelector = undefined;
|
|
258
|
+
this.lastDetectionKey = '';
|
|
259
|
+
}
|
|
260
|
+
}
|
|
229
261
|
// ========== Cookie 注入 ==========
|
|
230
262
|
/**
|
|
231
263
|
* 按 URL 提取并注入 Cookie。
|
|
@@ -488,6 +520,8 @@ class BenchmarkCollector {
|
|
|
488
520
|
if (newUrl && newUrl !== lastUrl && newUrl !== 'about:blank') {
|
|
489
521
|
// 跨域时自动注入新域名的 Cookie(异步,不阻塞录制)
|
|
490
522
|
this.injectCookiesForUrl(newUrl).catch(() => { });
|
|
523
|
+
// 根据新 URL 动态更新 chat-selector
|
|
524
|
+
this.refreshChatSelector(newUrl);
|
|
491
525
|
const code = `await page.goto('${newUrl}');`;
|
|
492
526
|
this.allCodeLines.push(code);
|
|
493
527
|
this.enqueueCapture({
|
|
@@ -508,6 +542,7 @@ class BenchmarkCollector {
|
|
|
508
542
|
// 新页面可能是不同域名,自动注入 Cookie
|
|
509
543
|
if (url && url !== 'about:blank') {
|
|
510
544
|
this.injectCookiesForUrl(url).catch(() => { });
|
|
545
|
+
this.refreshChatSelector(url);
|
|
511
546
|
}
|
|
512
547
|
// 记录新 tab 打开事件
|
|
513
548
|
const code = `// New page opened: ${url}`;
|
|
@@ -848,9 +883,9 @@ class BenchmarkCollector {
|
|
|
848
883
|
// 模式 A:API 拦截 — 累积写入 history.json
|
|
849
884
|
const apiMessages = this.apiCapture.getMessages();
|
|
850
885
|
const diag = this.apiCapture.getDiagnostics();
|
|
851
|
-
if (
|
|
886
|
+
if (this.lastDetectionKey !== 'api') {
|
|
852
887
|
console.log(` 💬 对话来源: API 拦截 (${diag.responseCount} 次响应, ${apiMessages.length} 条消息)`);
|
|
853
|
-
this.
|
|
888
|
+
this.lastDetectionKey = 'api';
|
|
854
889
|
}
|
|
855
890
|
// 基于消息内容哈希判断是否有变化
|
|
856
891
|
const contentKey = apiMessages
|
|
@@ -877,24 +912,32 @@ class BenchmarkCollector {
|
|
|
877
912
|
}
|
|
878
913
|
else {
|
|
879
914
|
// 模式 B:DOM 检测(从页面元素提取)
|
|
880
|
-
|
|
915
|
+
// 兜底:实时 URL 优先,避免 framenavigated 未触发或时序问题导致 selector 过期
|
|
916
|
+
if (!this.userChatSelector) {
|
|
917
|
+
this.refreshChatSelector(page.url());
|
|
918
|
+
}
|
|
919
|
+
const effectiveSelector = this.userChatSelector || this.chatSelector;
|
|
920
|
+
const convJson = await this.cdpEval(cdp, (0, conversation_capture_1.getConversationScript)(effectiveSelector));
|
|
881
921
|
const convData = JSON.parse(convJson);
|
|
882
|
-
//
|
|
883
|
-
if (convData._detection
|
|
922
|
+
// 检测方法/选择器变化时输出诊断(key 变化即重新打印)
|
|
923
|
+
if (convData._detection) {
|
|
884
924
|
const d = convData._detection;
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
925
|
+
const key = `${d.method}|${d.containerSelector}`;
|
|
926
|
+
if (key !== this.lastDetectionKey) {
|
|
927
|
+
if (d.method === 'scored') {
|
|
928
|
+
console.log(` 💬 对话容器: ${d.containerSelector} (score: ${d.score}, 候选: ${d.candidateCount})`);
|
|
929
|
+
}
|
|
930
|
+
else if (d.method === 'cached') {
|
|
931
|
+
console.log(` 💬 对话容器: ${d.containerSelector} (cached)`);
|
|
932
|
+
}
|
|
933
|
+
else if (d.method === 'selector') {
|
|
934
|
+
console.log(` 💬 对话容器: ${d.containerSelector} (用户指定/平台匹配)`);
|
|
935
|
+
}
|
|
936
|
+
else if (d.method === 'none') {
|
|
937
|
+
console.log(` 💬 未检测到对话容器 (候选: ${d.candidateCount}, 最高分: ${d.score})`);
|
|
938
|
+
}
|
|
939
|
+
this.lastDetectionKey = key;
|
|
896
940
|
}
|
|
897
|
-
this.chatDetectionLogged = true;
|
|
898
941
|
}
|
|
899
942
|
if (convData.messageCount > 0) {
|
|
900
943
|
const contentKey = convData.messages
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collector.js","sourceRoot":"","sources":["../../src/collector.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"collector.js","sourceRoot":"","sources":["../../src/collector.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "benchmark-collector",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.6.0",
|
|
4
4
|
"description": "Playwright-based benchmark data collector for web agent training",
|
|
5
5
|
"main": "dist/src/index.js",
|
|
6
6
|
"types": "dist/src/index.d.ts",
|
|
@@ -18,6 +18,8 @@
|
|
|
18
18
|
],
|
|
19
19
|
"scripts": {
|
|
20
20
|
"collect": "ts-node scripts/collect.ts",
|
|
21
|
+
"feige-history": "ts-node scripts/feige-history-collect.ts",
|
|
22
|
+
"pdd-history": "ts-node scripts/pdd-history-collect.ts",
|
|
21
23
|
"build": "tsc",
|
|
22
24
|
"prepublishOnly": "npm run build",
|
|
23
25
|
"postinstall": "node dist/scripts/postinstall.js",
|