部署
使用 BotBrowser 防护自动化检测
BotBrowser 如何防止自动化框架信号暴露,无需隐身插件。
概述
通过 Playwright 或 Puppeteer 启动 Chromium 时,浏览器会暴露自动化信号。BotBrowser 在引擎层面处理这些信号,在任何页面代码执行之前进行控制。无需隐身插件或 JavaScript 补丁。
BotBrowser 如何处理
BotBrowser 修改浏览器引擎本身。自动化信号在 C++ 层面、任何 JavaScript 上下文创建之前进行控制。这意味着 navigator.webdriver 原生返回 false,无头模式产生与有头模式相同的 API 表面。
简洁的 Playwright 配置
const { chromium } = require('playwright-core');
(async () => {
const browser = await chromium.launch({
executablePath: '/path/to/botbrowser/chrome',
args: [
'--bot-profile=/path/to/profile.enc',
],
headless: true,
});
const context = await browser.newContext();
const page = await context.newPage();
await page.goto('https://example.com');
await browser.close();
})();
生产配置
const browser = await chromium.launch({
executablePath: '/path/to/botbrowser/chrome',
args: [
'--bot-profile=/path/to/profile.enc',
'--proxy-server=socks5://user:pass@proxy:1080',
'--bot-config-timezone=America/New_York',
'--bot-config-locale=en-US',
'--bot-config-languages=en-US,en',
'--bot-disable-console-message',
'--bot-disable-debugger',
],
headless: true,
});
关键参数:--bot-disable-debugger 防止页面通过 debugger 语句暂停执行。--bot-disable-console-message 抑制控制台输出。
最佳实践
使用 playwright-core 而非 playwright。 完整包会捆绑自己的 Chromium。
设置 defaultViewport: null。 保留配置文件的屏幕尺寸。
代理位置与配置文件匹配。 将指纹配置文件与地理位置匹配的代理结合。
跨会话轮换配置文件。 使用 --bot-profile-dir 从配置文件目录中随机选择。
可以移除的内容
使用 BotBrowser 后,你不再需要隐身库、自定义 JavaScript 补丁、User-Agent 伪装中间件或"未检测"浏览器包装库。BotBrowser 在引擎层面处理底层信号。
下一步
- Playwright 入门 了解基础集成
- Docker 部署指南 了解容器化自动化
- 配置文件管理 了解配置文件组织
#automation#detection#webdriver#deployment#privacy