puppeteer注入cookie然后访问页面

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: {
         1300,
        height: 900
    }
}
let cookieString = `
BDUSS=TNJUFJDbTdoAAAC8DzIkbXV6aWNvNDI1GGGGGGGGGGGGGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1TLF0dUyxdS;
`
const addCookies = async (cookies_str, page, domain) => {
    let cookies = cookies_str.split(';').map(
        pair => {
        let name = pair.trim().slice(0, pair.trim().indexOf('='));
        let value = pair.trim().slice(pair.trim().indexOf('=') + 1);
        return {name, value, domain}
    });
    await Promise.all(cookies.map(pair => {
        console.log(pair);
        return page.setCookie(pair)
    }))
};
(async () => {
    const browser = await puppeteer.launch(conf);

    const page = await browser.newPage();
    ps= await browser.pages()
    await ps[0].close()

    //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.emulate(iphone)
    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 addCookies(cookieString, page, 'www.baidu.com');

    await page.goto(`https://www.baidu.com`);

})()
原文地址:https://www.cnblogs.com/c-x-a/p/11250662.html