web-fetcher-mcp 1.0.20 → 1.0.21
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../src/utils/browser.ts"],"names":[],"mappings":"AAAA,OAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../src/utils/browser.ts"],"names":[],"mappings":"AAAA,OAAkB,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AA8CtD,wBAAsB,UAAU,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAgF7D;AAED;;;GAGG;AACH,wBAAsB,OAAO,CAC3B,OAAO,EAAE,OAAO,EAChB,kBAAkB,EAAE,OAAO,EAC3B,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC,CAIf;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,OAAO,EAChB,kBAAkB,EAAE,OAAO,EAC3B,OAAO,CAAC,EAAE;IACR,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,GACA,OAAO,CAAC;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAExC;AAGD,wBAAsB,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,OAAO,EAAE,QAAQ,GAAE,OAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAE1H;AAGD,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAQpG"}
|
package/dist/utils/browser.js
CHANGED
|
@@ -15,6 +15,34 @@ function ensureDataDir() {
|
|
|
15
15
|
// 浏览器实例缓存(避免每次工具调用都启动/连接新实例)
|
|
16
16
|
let cachedBrowser = null;
|
|
17
17
|
let cachedUseExisting = false;
|
|
18
|
+
// 隐藏 navigator.webdriver 自动化标记的注入脚本
|
|
19
|
+
const STEALTH_SCRIPT = 'Object.defineProperty(navigator, "webdriver", { get: () => undefined });';
|
|
20
|
+
/**
|
|
21
|
+
* 给浏览器的所有页面(现有 + 未来新建)注入脚本隐藏 navigator.webdriver。
|
|
22
|
+
* 替代 --disable-blink-features=AutomationControlled 命令行 flag,避免 Chrome 弹出
|
|
23
|
+
* "不受支持的命令行标记" 黄色警告栏,同时保留反自动化检测能力。
|
|
24
|
+
*/
|
|
25
|
+
function setupWebdriverStealth(browser) {
|
|
26
|
+
// 未来新建的页面/标签:targetcreated 时注入
|
|
27
|
+
browser.on('targetcreated', async (target) => {
|
|
28
|
+
try {
|
|
29
|
+
if (target.type() !== 'page')
|
|
30
|
+
return;
|
|
31
|
+
const page = await target.page();
|
|
32
|
+
if (page)
|
|
33
|
+
await page.evaluateOnNewDocument(STEALTH_SCRIPT);
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
// 忽略:目标可能已关闭或不支持
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
// 现有页面(如启动时默认的 about:blank):立即注入
|
|
40
|
+
browser.pages().then((pages) => {
|
|
41
|
+
for (const page of pages) {
|
|
42
|
+
page.evaluateOnNewDocument(STEALTH_SCRIPT).catch(() => { });
|
|
43
|
+
}
|
|
44
|
+
}).catch(() => { });
|
|
45
|
+
}
|
|
18
46
|
// 连接到已有 Chrome 实例或启动新实例
|
|
19
47
|
export async function getBrowser() {
|
|
20
48
|
ensureDataDir();
|
|
@@ -37,6 +65,8 @@ export async function getBrowser() {
|
|
|
37
65
|
console.error('成功连接到已有的 Chrome 实例!');
|
|
38
66
|
// 设置全局日志收集器
|
|
39
67
|
setupBrowserConsoleCollector(browser);
|
|
68
|
+
// 注入脚本隐藏 navigator.webdriver(替代已移除的命令行 flag)
|
|
69
|
+
setupWebdriverStealth(browser);
|
|
40
70
|
cachedBrowser = browser;
|
|
41
71
|
cachedUseExisting = true;
|
|
42
72
|
return { browser, useExistingBrowser: true };
|
|
@@ -54,8 +84,11 @@ export async function getBrowser() {
|
|
|
54
84
|
executablePath: CHROME_PATH,
|
|
55
85
|
userDataDir: USER_DATA_DIR,
|
|
56
86
|
defaultViewport: null,
|
|
57
|
-
// 去掉 puppeteer
|
|
58
|
-
|
|
87
|
+
// 去掉 puppeteer 默认注入的、会触发 Chrome "不受支持的命令行标记" 黄色警告栏的参数:
|
|
88
|
+
// --enable-automation → 顶部"正受到自动测试软件控制"提示
|
|
89
|
+
// --enable-blink-features=IdleDetection → Chrome 150 已移除该 blink 特性,会弹"不受支持的命令行标记"警告
|
|
90
|
+
// (ignoreDefaultArgs 按字符串精确匹配,必须带双横线)
|
|
91
|
+
ignoreDefaultArgs: ['--enable-automation', '--enable-blink-features=IdleDetection'],
|
|
59
92
|
args: [
|
|
60
93
|
// 注意:--no-sandbox / --disable-setuid-sandbox 仅 Linux 上(尤其 root 运行)才需要。
|
|
61
94
|
// 在 Windows / macOS 上加上会触发 Chrome "您使用的是不受支持的命令行标记" 警告栏,故按平台条件注入。
|
|
@@ -68,14 +101,18 @@ export async function getBrowser() {
|
|
|
68
101
|
'--disable-infobars',
|
|
69
102
|
'--disable-notifications',
|
|
70
103
|
'--disable-popup-blocking',
|
|
71
|
-
//
|
|
72
|
-
|
|
104
|
+
// 注意:不要用 --disable-blink-features=AutomationControlled 命令行 flag,
|
|
105
|
+
// 新版 Chrome 会把它列为"不受支持的命令行标记"并弹出黄色警告栏。
|
|
106
|
+
// 改为在 setupWebdriverStealth() 里用 evaluateOnNewDocument 注入脚本隐藏 navigator.webdriver,
|
|
107
|
+
// 既能反自动化检测又不触发警告栏。
|
|
73
108
|
`--remote-debugging-port=${DEBUGGING_PORT}`
|
|
74
109
|
]
|
|
75
110
|
});
|
|
76
111
|
console.error('已启动独立的 Chrome 实例');
|
|
77
112
|
// 设置全局日志收集器
|
|
78
113
|
setupBrowserConsoleCollector(browser);
|
|
114
|
+
// 注入脚本隐藏 navigator.webdriver(替代已移除的命令行 flag)
|
|
115
|
+
setupWebdriverStealth(browser);
|
|
79
116
|
cachedBrowser = browser;
|
|
80
117
|
cachedUseExisting = false;
|
|
81
118
|
return { browser, useExistingBrowser: false };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/utils/browser.ts"],"names":[],"mappings":"AAAA,OAAO,SAA4B,MAAM,WAAW,CAAC;AACrD,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEnF,OAAO,EAAyB,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AAC1F,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE5E,WAAW;AACX,SAAS,aAAa;IACpB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,CAAC;IACD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAClC,EAAE,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC;AACH,CAAC;AAED,6BAA6B;AAC7B,IAAI,aAAa,GAAmB,IAAI,CAAC;AACzC,IAAI,iBAAiB,GAAY,KAAK,CAAC;AAEvC,wBAAwB;AACxB,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,aAAa,EAAE,CAAC;IAEhB,aAAa;IACb,MAAM,iBAAiB,EAAE,CAAC;IAE1B,wBAAwB;IACxB,IAAI,aAAa,IAAI,aAAa,CAAC,WAAW,EAAE,EAAE,CAAC;QACjD,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC5B,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,CAAC;IAC3E,CAAC;IAED,6CAA6C;IAC7C,YAAY,EAAE,CAAC;IAEf,+BAA+B;IAC/B,IAAI,CAAC;QACH,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC;YACtC,UAAU,EAAE,oBAAoB,cAAc,EAAE;YAChD,eAAe,EAAE,IAAI;SACtB,CAAC,CAAC;QACH,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACrC,YAAY;QACZ,4BAA4B,CAAC,OAAO,CAAC,CAAC;QACtC,aAAa,GAAG,OAAO,CAAC;QACxB,iBAAiB,GAAG,IAAI,CAAC;QACzB,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC;IAC/C,CAAC;IAAC,OAAO,YAAiB,EAAE,CAAC;QAC3B,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAC9C,OAAO,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;QACxD,OAAO,CAAC,KAAK,CAAC,MAAM,WAAW,6BAA6B,cAAc,EAAE,CAAC,CAAC;IAChF,CAAC;IAED,kBAAkB;IAClB,IAAI,CAAC;QACH,OAAO,CAAC,KAAK,CAAC,mBAAmB,WAAW,EAAE,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC;YACrC,QAAQ,EAAE,KAAK;YACf,cAAc,EAAE,WAAW;YAC3B,WAAW,EAAE,aAAa;YAC1B,eAAe,EAAE,IAAI;YACrB,
|
|
1
|
+
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/utils/browser.ts"],"names":[],"mappings":"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"}
|