测试puppeteer模拟度检测
2024-09-05 04:49:15
var puppeteer = require('puppeteer');
const devices = require('puppeteer/DeviceDescriptors');
const iphone = devices["iPhone 6"]
const path = require('path');
const pathToExtension = path.join(__dirname, './chrome-mac/Chromium.app/Contents/MacOS/Chromium');
const conf = {
headless: false,
executablePath: pathToExtension,
defaultViewport: {
width: 1300,
height: 900
}
}
puppeteer.launch(conf).then(
async browser => {
const page = await browser.newPage();
await page.setUserAgent("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.157 Safari/537.36");
await page.evaluateOnNewDocument(() => {
delete navigator.__proto__.webdriver;
});
await page.evaluateOnNewDocument(() => {
Object.defineProperty(navigator, 'plugins', {
get: () => [1, 2, 3, 4, 5],
});
});
await page.evaluateOnNewDocument(() => {
Object.defineProperty(navigator, 'languages', {
get: () => ['en-US', 'en'],
});
});
await page.evaluateOnNewDocument(() => {
Object.defineProperty(navigator, 'platform', {
get: () => "Linux armxxxxx",
configurable: true
});
});
await page.evaluateOnNewDocument(() => {
window.navigator.chrome = {
runtime: {},
getUserMedia: {},
};
});
await page.goto(`https://intoli.com/blog/not-possible-to-block-chrome-headless/chrome-headless-test.html`);
})
最新文章
- 为tomcat动态添加jndi数据源信息
- 第57讲:Scala中Dependency Injection实战详解
- Intent和Activity知识点总结
- ssh localhost “Permission denied (publickey)
- Linux 常用
- JS模块化编程之AMD规范(转)
- uedit富文本编辑器
- FastDFS、nginx配置手记
- hdu--1711--kmp应用在整形数组--Number Sequence
- 【Shader拓展】Illustrative Rendering in Team Fortress 2
- JDK 源码分析(4)—— HashMap/LinkedHashMap/Hashtable
- 官网下载旧版本jdk,老版本jdk,jdk1.7,jdk1.8
- [转] Torch中实现mini-batch RNN
- 微软Azure AspNetCore微服务实战 第二期
- vux icon
- 关于ip包长度
- 用开源项目CropImage实现图片的裁剪(不推荐)
- Windows Phone background Audio 后台音频
- cpu访址能力和内存
- 如何写出优雅的js以及js特殊技巧