@skrillex1224/playwright-toolkit 2.1.24 → 2.1.26

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 CHANGED
@@ -23,7 +23,7 @@ import { usePlaywrightToolKit } from '@skrillex1224/playwright-toolkit';
23
23
  await Actor.init();
24
24
 
25
25
  // 初始化工具箱
26
- const { ApifyKit: KitHook, Launch, AntiDetect, Humanize, Captcha, LiveView, Constants } = usePlaywrightToolKit();
26
+ const { ApifyKit: KitHook, Launch, AntiCheat, Humanize, Captcha, LiveView, Constants } = usePlaywrightToolKit();
27
27
 
28
28
  // ⚠️ ApifyKit 需要异步初始化
29
29
  const ApifyKit = await KitHook.useApifyKit();
@@ -39,7 +39,7 @@ const crawler = new PlaywrightCrawler({
39
39
  preNavigationHooks: [
40
40
  async ({ page }) => {
41
41
  // 统一反爬:时区/语言/权限/视口
42
- await AntiDetect.applyPage(page);
42
+ await AntiCheat.applyPage(page);
43
43
 
44
44
  // 验证码监控
45
45
  Captcha.useCaptchaMonitor(page, {
@@ -77,32 +77,32 @@ await Actor.exit();
77
77
 
78
78
  ### 架构
79
79
 
80
- | 层次 | 问题 | 解决方案 |
81
- |------|------|----------|
82
- | **指纹层** | UA/屏幕/语言/时区一致性 | Crawlee `useFingerprints` + `AntiDetect` |
83
- | **行为层** | 机械输入/点击/滚动 | `ghost-cursor-playwright` + Humanize |
84
- | **页面层** | 验证码/风控检测 | Captcha 监控器 |
80
+ | 层次 | 问题 | 解决方案 |
81
+ | ---------- | ----------------------- | --------------------------------------- |
82
+ | **指纹层** | UA/屏幕/语言/时区一致性 | Crawlee `useFingerprints` + `AntiCheat` |
83
+ | **行为层** | 机械输入/点击/滚动 | `ghost-cursor-playwright` + Humanize |
84
+ | **页面层** | 验证码/风控检测 | Captcha 监控器 |
85
85
 
86
86
  ### API 一览
87
87
 
88
- | 模块 | 方法 | 说明 |
89
- |------|------|------|
90
- | `Launch` | `getAdvancedLaunchOptions()` | 增强版启动参数 |
91
- | `Launch` | `getLaunchOptions()` | 基础启动参数 |
92
- | `Launch` | `getFingerprintGeneratorOptions()` | 指纹生成器选项 |
93
- | `AntiDetect` | `applyPage(page, options?)` | 应用时区/语言/权限/视口 |
94
- | `AntiDetect` | `applyContext(context, options?)` | 仅应用 Context 设置 |
95
- | `AntiDetect` | `syncViewportWithScreen(page)` | 同步视口与屏幕 |
96
- | `AntiDetect` | `getTlsFingerprintOptions(userAgent?)` | got-scraping TLS 指纹 |
97
- | `Humanize` | `initializeCursor(page)` | 初始化 Cursor (必须先调用) |
98
- | `Humanize` | `jitterMs(base, jitterPercent?)` | 生成带抖动的毫秒数 (同步,返回 number) |
99
- | `Humanize` | `humanType(page, selector, text, options?)` | 人类化输入 (baseDelay=180ms ±40%) |
100
- | `Humanize` | `humanClick(page, selector, options?)` | 人类化点击 (reactionDelay=250ms ±40%) |
101
- | `Humanize` | `warmUpBrowsing(page, baseDuration?)` | 页面预热 (3500ms ±40%) |
102
- | `Humanize` | `naturalScroll(page, direction?, distance?, steps?)` | 自然滚动 (带惯性+抖动) |
103
- | `Humanize` | `simulateGaze(page, baseDurationMs?)` | 模拟注视 (2500ms ±40%) |
104
- | `Humanize` | `randomSleep(baseMs, jitterPercent?)` | 随机延迟 (±30% 抖动) |
105
- | `Captcha` | `useCaptchaMonitor(page, options)` | 验证码监控 |
88
+ | 模块 | 方法 | 说明 |
89
+ | ----------- | ---------------------------------------------------- | -------------------------------------- |
90
+ | `Launch` | `getAdvancedLaunchOptions()` | 增强版启动参数 |
91
+ | `Launch` | `getLaunchOptions()` | 基础启动参数 |
92
+ | `Launch` | `getFingerprintGeneratorOptions()` | 指纹生成器选项 |
93
+ | `AntiCheat` | `applyPage(page, options?)` | 应用时区/语言/权限/视口 |
94
+ | `AntiCheat` | `applyContext(context, options?)` | 仅应用 Context 设置 |
95
+ | `AntiCheat` | `syncViewportWithScreen(page)` | 同步视口与屏幕 |
96
+ | `AntiCheat` | `getTlsFingerprintOptions(userAgent?)` | got-scraping TLS 指纹 |
97
+ | `Humanize` | `initializeCursor(page)` | 初始化 Cursor (必须先调用) |
98
+ | `Humanize` | `jitterMs(base, jitterPercent?)` | 生成带抖动的毫秒数 (同步,返回 number) |
99
+ | `Humanize` | `humanType(page, selector, text, options?)` | 人类化输入 (baseDelay=180ms ±40%) |
100
+ | `Humanize` | `humanClick(page, selector, options?)` | 人类化点击 (reactionDelay=250ms ±40%) |
101
+ | `Humanize` | `warmUpBrowsing(page, baseDuration?)` | 页面预热 (3500ms ±40%) |
102
+ | `Humanize` | `naturalScroll(page, direction?, distance?, steps?)` | 自然滚动 (带惯性+抖动) |
103
+ | `Humanize` | `simulateGaze(page, baseDurationMs?)` | 模拟注视 (2500ms ±40%) |
104
+ | `Humanize` | `randomSleep(baseMs, jitterPercent?)` | 随机延迟 (±30% 抖动) |
105
+ | `Captcha` | `useCaptchaMonitor(page, options)` | 验证码监控 |
106
106
 
107
107
  ---
108
108
 
package/dist/index.cjs CHANGED
@@ -351,8 +351,8 @@ var Utils = {
351
351
  }
352
352
  };
353
353
 
354
- // src/stealth.js
355
- var logger3 = createLogger("AntiDetect");
354
+ // src/anti-cheat.js
355
+ var logger3 = createLogger("AntiCheat");
356
356
  var BASE_CONFIG = Object.freeze({
357
357
  locale: "zh-CN",
358
358
  acceptLanguage: "zh-CN,zh;q=0.9",
@@ -474,7 +474,7 @@ function resolveConfig(overrides = {}) {
474
474
  geolocation: overrides.geolocation === null ? null : overrides.geolocation || BASE_CONFIG.geolocation
475
475
  };
476
476
  }
477
- var AntiDetect = {
477
+ var AntiCheat = {
478
478
  /**
479
479
  * 获取统一的基础配置(中国、桌面端、中文语言)。
480
480
  */
@@ -1076,7 +1076,7 @@ var Launch = {
1076
1076
  getLaunchOptions(customArgs = []) {
1077
1077
  return {
1078
1078
  args: [
1079
- ...AntiDetect.getLaunchArgs(),
1079
+ ...AntiCheat.getLaunchArgs(),
1080
1080
  ...customArgs
1081
1081
  ],
1082
1082
  ignoreDefaultArgs: ["--enable-automation"]
@@ -1088,7 +1088,7 @@ var Launch = {
1088
1088
  getAdvancedLaunchOptions(customArgs = []) {
1089
1089
  return {
1090
1090
  args: [
1091
- ...AntiDetect.getAdvancedLaunchArgs(),
1091
+ ...AntiCheat.getAdvancedLaunchArgs(),
1092
1092
  ...customArgs
1093
1093
  ],
1094
1094
  ignoreDefaultArgs: ["--enable-automation"]
@@ -1099,7 +1099,7 @@ var Launch = {
1099
1099
  * 确保生成的是桌面端、较新的 Chrome,以匹配我们的脚本逻辑
1100
1100
  */
1101
1101
  getFingerprintGeneratorOptions() {
1102
- return AntiDetect.getFingerprintGeneratorOptions();
1102
+ return AntiCheat.getFingerprintGeneratorOptions();
1103
1103
  }
1104
1104
  };
1105
1105
 
@@ -1628,7 +1628,7 @@ var Interception = {
1628
1628
  const reqHeaders = await request.allHeaders();
1629
1629
  delete reqHeaders["host"];
1630
1630
  const currentAcceptLanguage = reqHeaders["accept-language"] || "";
1631
- AntiDetect.applyLocaleHeaders(reqHeaders, currentAcceptLanguage);
1631
+ AntiCheat.applyLocaleHeaders(reqHeaders, currentAcceptLanguage);
1632
1632
  const resolvedAcceptLanguage = reqHeaders["accept-language"] || "";
1633
1633
  const userAgent = reqHeaders["user-agent"] || "";
1634
1634
  const method = request.method();
@@ -1643,7 +1643,7 @@ var Interception = {
1643
1643
  responseType: "buffer",
1644
1644
  // 强制获取 Buffer
1645
1645
  // 模拟浏览器 TLS 指纹
1646
- headerGeneratorOptions: AntiDetect.getTlsFingerprintOptions(userAgent, resolvedAcceptLanguage),
1646
+ headerGeneratorOptions: AntiCheat.getTlsFingerprintOptions(userAgent, resolvedAcceptLanguage),
1647
1647
  // 使用共享的 Agent 单例(keepAlive: false,不会池化连接)
1648
1648
  agent: {
1649
1649
  http: SHARED_HTTP_AGENT,
@@ -1727,7 +1727,7 @@ function isIgnorableError(error) {
1727
1727
  var usePlaywrightToolKit = () => {
1728
1728
  return {
1729
1729
  ApifyKit,
1730
- AntiDetect,
1730
+ AntiCheat,
1731
1731
  Humanize,
1732
1732
  Launch,
1733
1733
  LiveView,