因为伪造者只能与enable-automation标志一起使用,所以即使不手工操作也无法登录具有隐藏验证码的网站。
puppeteer.launch({
/*
args:[
'--no-sandbox',
'--disable-setuid-sandbox',
'--disable-infobars',
'--window-position=0,0',
'--ignore-certifcate-errors',
'--ignore-certifcate-errors-spki-list'
],
defaultViewport: null,
*/
executablePath: "C:/Program Files (x86)/Google/Chrome/Application/chrome.exe",
userDataDir:"C:/Users/user/AppData/Local/Google/Chrome/User Data",
ignoreHTTPSErrors: true,
ignoreDefaultArgs: ['--enable-automation'],
headless: false}).then(async browser => {
const page = await browser.newPage();
await page.setViewport({width: 1920, height: 1080});
await page.setUserAgent('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36');
await page.evaluateOnNewDocument(() => {Object.defineProperty(navigator, 'webdriver', {get: () => undefined });});
await page.evaluateOnNewDocument(() => {
Object.defineProperty(navigator, 'languages', {
get: () => ['tr-TR', 'tr'],
});
});
await page.evaluateOnNewDocument(() => {
Object.defineProperty(navigator, 'plugins', {
get: () => [1, 2, 3, 4, 5],
});
});
await page.evaluateOnNewDocument(() => {
const originalQuery = window.navigator.permissions.query;
return window.navigator.permissions.query = (parameters) => (
parameters.name === 'notifications' ?
Promise.resolve({ state: Notification.permission }) :
originalQuery(parameters)
);
});
await page.evaluateOnNewDocument(() => {
window.navigator.chrome = {
runtime: {},
};
});
await page.goto('http://' + config.domain, { waitUntil: "load" });
有些事情我试图不被标记为autamation bot,我使用自己的cookie,我自己的useragent将navigator.webdriver设置为undefined。但是以某种方式被recaptcha的api检测到了,我却无法在网站上执行任何任务。
如何触发