28 lines
942 B
JavaScript
28 lines
942 B
JavaScript
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'
|
|
});
|
|
}
|