import puppeteer_extra from 'puppeteer-extra'; import stealth_plugin from 'puppeteer-extra-plugin-stealth'; // 全局只注册一次插件 let inited = false; export function get_stealth_puppeteer(puppeteer_core) { if (!inited) { puppeteer_extra.use(stealth_plugin()); inited = true; } // 复用 puppeteer 的 Chromium/Chrome 绑定(保持你现有的 executablePath 等能力) puppeteer_extra.puppeteer = puppeteer_core; return puppeteer_extra; } export async function apply_page_stealth_defaults(page) { // 这些属于通用的轻量“指纹一致性”设置,不会影响你现有业务 await page.setViewport({ width: 1366, height: 768, deviceScaleFactor: 1 }); await page.setUserAgent( 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36' ); await page.setExtraHTTPHeaders({ 'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8' }); }